半字节是四位.这意味着有16(2 ^ 4)个可能的值.这意味着半字节对应于单个十六进制数字,因为十六进制是基数16.字节是2 ^ 8,因此可以用2个十六进制数字表示,因此可以用2个半字节表示.
所以下面我有一个1字节的字符:
'一个'
那个角色是2 ^ 8:
'A'.unpack('B*')
=> ["01000001"]
Run Code Online (Sandbox Code Playgroud)
这意味着它应该由两个十六进制数字表示:
01000001 == 41
Run Code Online (Sandbox Code Playgroud)
根据Ruby文档,对于Array方法包,当aTemplateString(参数)等于'H'时,它将返回一个十六进制字符串.但这就是我得到的回报:
['A'].pack('H')
=> "\xA0"
Run Code Online (Sandbox Code Playgroud)
我的第一点是它不应该返回的十六进制值.它应该返回十六进制值41.第二点是半字节的概念,正如我上面解释的那样,意味着1个字节,它应该返回两个半字节.但在它上面插入一个0,因为它认为输入只有1个半字节,即使'A'是一个字节并且有两个半字节.很明显我在这里遗漏了一些东西.
当我运行以下代码时:
if
puts "A"
elsif
puts "B"
end
Run Code Online (Sandbox Code Playgroud)
我得到输出:
A
B
Run Code Online (Sandbox Code Playgroud)
为什么不警告或提出任何错误?为什么它会执行两个分支?
我想通过nextis- cloneable为外部迭代创建一个枚举器,以便克隆保留当前的枚举状态。
举个例子,假设我有一个方法,它返回一个枚举数,它产生平方数:
def square_numbers
return enum_for(__method__) unless block_given?
n = d = 1
loop do
yield n
d += 2
n += d
end
end
square_numbers.take(10)
#=> [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Run Code Online (Sandbox Code Playgroud)
我想枚举前 5 个平方数,并为每个值打印随后的 3 个平方数。一些无关紧要的事情each_cons:
square_numbers.take(8).each_cons(4) do |a, *rest|
printf("%2d: %2d %2d %2d\n", a, *rest)
end
Run Code Online (Sandbox Code Playgroud)
输出:
1: 4 9 16
4: 9 16 25
9: 16 25 36
16: 25 36 49
25: 36 …Run Code Online (Sandbox Code Playgroud) 我有以下标题:
From: =?iso-8859-1?Q?Marta_Falc=E3o?= <marta.falcao@example.com.br>
Run Code Online (Sandbox Code Playgroud)
我可以轻松地将这些东西拆分出去<,这让我不知所措
"=?iso-8859-1?Q?Marta_Falc=E3o?="
Run Code Online (Sandbox Code Playgroud)
我可以用什么把它变成"Marta Falcão"?
我正在使用Prawn生成PDF文档,但在尝试生成项目表时遇到上述错误.关于如何解决这个问题的任何想法?
应用程序/模型/ storage_request.rb
class StorageRequest < ActiveRecord::Base
has_many :packages
accepts_nested_attributes_for :packages, :allow_destroy => true
attr_accessible :user_id, :state, :packages_attributes
end
Run Code Online (Sandbox Code Playgroud)
应用程序/模型/ package.rb
class Package < ActiveRecord::Base
belongs_to :storage_request
has_many :items
accepts_nested_attributes_for :items, allow_destroy: true
attr_accessible :user_id, :state, :items_attributes
end
Run Code Online (Sandbox Code Playgroud)
应用程序/模型/ item.rb的
class Item < ActiveRecord::Base
belongs_to :package
attr_accessible :name, :user_id
end
Run Code Online (Sandbox Code Playgroud)
应用程序/ PDF文件/ storage_request_pdf.rb
class StorageRequestPdf < Prawn::Document
def initialize(storage_request, view)
super(top_margin: 50)
@storage_request = storage_request
@view = view
list_items
end
def list_items
move_down 20
text "Summary", size: 30, style: :bold, …Run Code Online (Sandbox Code Playgroud) 我对编程比较陌生,这是我的第一个问题,所以我们走了:
尝试使用prawn渲染图像时出现以下错误:
ArgumentError in PropertiesController#show
/uploads/property/image/1/DSC_1749.JPG not found
Rails.root: /Users/Guest/Code/list
Run Code Online (Sandbox Code Playgroud)
我的代码
class PropertyPdf < Prawn::Document
def initialize(property)
super(top_margin: 70)
@property = property
building_heading
spacing
building_info
spacing2
offer
spacing2
offer2
end
def building_heading
text "#{@property.building_name}", size: 30, style: :bold
text "#{@property.comment}", size: 23, style: :italic
building_photo = "#{@property.image_url}"
image building_photo, height: 200, width: 200
end
end
Run Code Online (Sandbox Code Playgroud)
显示控制器中的相关部分:
respond_to do |format|
format.html # show.html.erb
format.json { render json: @property }
format.pdf do
pdf = PropertyPdf.new(@property)
send_data pdf.render, type: "application/pdf",
disposition: "inline"
end …Run Code Online (Sandbox Code Playgroud) 我有这样的字符串"abce\xC3".sub("a","A"),当我执行该行时,我得到以下错误.
ArgumentError: invalid byte sequence in UTF-8
from (irb):20:in `sub'
from (irb):20
from /home/vijay/.rvm/rubies/ruby-2.0.0-p598/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题.
我正在尝试缩短此代码:
if a.nil?
a = "foo"
else
a << "foo"
end
Run Code Online (Sandbox Code Playgroud)
a是一个nil或一个字符串.
我已经尝试了a ||= "foo",a += "foo"但如果a是这些则不起作用nil.
我正在尝试在字符串开头的新行中追加 10 个空格:
string = "\nHello"
Run Code Online (Sandbox Code Playgroud)
应改为:
"\n Hello"
Run Code Online (Sandbox Code Playgroud)
尝试了以下和其他方式但徒劳无功
string.gsub!("\n", "\n(\s){10}")
#=> "\n( ){10}Hello"
Run Code Online (Sandbox Code Playgroud)
和
string.gsub!("\n", "\n[\s]{10}")
#=> "\n[ ]{10}Hello"
Run Code Online (Sandbox Code Playgroud) 鉴于此代码:
expect(exit_code).to eq(0), result
Run Code Online (Sandbox Code Playgroud)
我理解expect(exit_code).to eq(0)应该做什么,但我不明白逗号或result变量在做什么.有人可以为我阐明一下吗?