[英]Counting chars in ruby 1.9.3 error
我正在計算字符串長度,如下所示:
if(key['name'].to_s.chars.length==0)
key['name']="Others"
end
在ruby 2.1.8p440上可以工作,但是在ruby 1.9.3p551上會拋出以下錯誤:
(undefined method `length' for #<Enumerator: "Latency":chars>):
我無法更新1.9.3,我必須更改此代碼。
更明確的地方出了什么問題:
key['name'] = "Others" if key['name'].to_s.empty?
那無處不在?
順便說一句,在Ruby 1.9.3中,沒有Enumerable#length
沒有Enumerable#count
。 以后收到的別名length
。
在Ruby 1.9.3中的String# chars
將str中的每個字符傳遞到給定的塊, 如果沒有給出塊,則返回一個枚舉器。
因此,在調用length
之前將其轉換為數組應該可以解決此問題:
key['name'].to_s.chars.to_a.count == 0 # or size ?
嘗試key['name'].to_s.mb_chars.length
。 希望這對你有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.