国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Ruby中變量引用時(shí)的一些注意點(diǎn)

2019-10-26 19:27:49
字體:
供稿:網(wǎng)友

在表達(dá)式中,當(dāng)Ruby看到像a這樣的名字時(shí),它需要判斷a是一個(gè)局部變量引用還是對(duì)沒有參數(shù)的方法a的調(diào)用。Ruby使用一種啟發(fā)式的方法來判斷這種情況。當(dāng)Ruby解析源代碼文件時(shí),它會(huì)記錄所有已經(jīng)被賦值的符號(hào)。它認(rèn)為這些符號(hào)是變量。以后當(dāng)遇到一個(gè)既可以是變量又可以是方法調(diào)用的符號(hào)時(shí),Ruby會(huì)檢查是否已經(jīng)對(duì)該符號(hào)進(jìn)行了賦值。如果是,那么把該符號(hào)當(dāng)作變量,否則當(dāng)作方法調(diào)用。下面是描述這種情況的一個(gè)人為設(shè)計(jì)的例子。
 

def a  print "Funciton 'a' called/n"  99end for i in 1..2  if i ==2   print "a=",a,"/n"  else   a=1   print "a=",a,"/n"  endend

  輸出結(jié)果:

a=1Function 'a' calleda=99

  當(dāng)解析的時(shí)候,Ruby看到第一個(gè)print語(yǔ)句使用了a,并且由于還沒有遇到對(duì)a的任意賦值語(yǔ)句,所以把它當(dāng)作方法調(diào)用。但是當(dāng)解析到第二個(gè)print語(yǔ)句時(shí),由于Ruby遇到了對(duì)a的一個(gè)賦值語(yǔ)句,所以把它當(dāng)作變量

  注意賦值語(yǔ)句不一定被執(zhí)行--只要Ruby看到它了就可以。下面的程序不會(huì)導(dǎo)致錯(cuò)誤

a=1 if false;a

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 兰西县| 晴隆县| 桐梓县| 贡嘎县| 淳安县| 霍林郭勒市| 清新县| 宾川县| 芜湖市| 渝北区| 犍为县| 阿巴嘎旗| 普定县| 江口县| 天门市| 自贡市| 巴东县| 海门市| 建德市| 息烽县| 彰化县| 酒泉市| 清远市| 嘉峪关市| 新干县| 武定县| 乌苏市| 荆州市| 长白| 阳城县| 抚远县| 城口县| 田东县| 汶川县| 邵武市| 江城| 河间市| 天柱县| 剑川县| 威信县| 太原市|