簡體   English   中英

nil在這里是什么意思/代表什么?

[英]what does nil mean/represent here?

以下是irb shell中的簡單語句。 輸出中的nil是什么意思? 為什么它將它與if塊中的print語句一起使用?

irb(main):062:0> if(x==20 && y==30)
irb(main):063:1> print("if statement working !")
irb(main):064:1> else
irb(main):065:1* print("else statement working !!")
irb(main):066:1> end
if statement working !=> nil # what does nil represent here ?

在Ruby中,所有表達式都返回值,即使它為nil 塊和方法僅返回最后計算的表達式的值。 有許多有效使用此方法的方法。 例如,這就是通常不使用顯式return的原因。 另外,您可以執行以下操作:

print if x == 20 && y == 30
  'if statement working!'
else
  'else statement working!'
end

關於您的示例: irb除了按照您的指示打印字符串外,還將顯示從if-else塊接收到的值。 由於print始終返回nil ,因此兩個分支將返回相同的值。

這意味着您的if塊不返回值(實際上可以返回值)。 例如,以下內容完全合法且可行:

foo = if bar > 10
    42
else
    0
end

# now, foo is either 42 or 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM