校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > ruby 局部變量

ruby 局部變量

熱門標簽:淮安自動外呼系統供應商 AI電銷機器人 線路 柯城手機地圖如何做地圖標注 征服者企業地圖標注 中牟外呼系統違法嗎 外呼線路從哪里出來的 天津外呼系統怎么收費 漯河電銷 巫師3地圖標注魔力之所
 局部變量由小寫字母或下劃線(_)開頭.局部變量不像全局和實變量一樣在初始化前含nil值.

ruby> $foo
   nil
ruby> @foo
   nil
ruby> foo
ERR: (eval):1: undefined local variable or method `foo' for main(Object)  


對局部變量的第一次賦值做的很像一次聲明.如果你指向一個未初始化的局部變量,Ruby解釋器會認為那是一個方法的名字;正如上面所見錯誤

信息的.

一般的,局部變量的范圍會是



proc{...} 

loop{...} 

def...end 

class...end 

module...end 

整個程序(除非符合上面某個條件)



下面的例子,define?是一個檢查標識符是否已定義的操作符.如果已定義它將返回標識符的描述,否則返回nil.正如你所見的,bar的范圍是

loop的局部變量;當loop退出時,bar無定義.

ruby> foo = 44; print foo, "\n"; defined? foo
44
   "local-variable"
ruby> loop{bar=45; print bar, "\n"; break}; defined? bar
45
   nil  


一個范圍內的過程對象共享這個范圍內的局部變量.這里,局部變量 bar 由 main 和過程對象 p1, p2共享:

ruby> bar=0
   0
ruby> p1 = proc{|n| bar=n}
   #Proc:0x8deb0>
ruby> p2 = proc{bar}
   #Proc:0x8dce8>
ruby> p1.call(5)
   5
ruby> bar
   5
ruby> p2.call
   5  


注意開始的"bar=0"不能省略;此賦值允許bar的范圍被 p1和 p2共享.不然 p1, p2 將會分別生成并處理它們自己的局部變量 bar, 調用 p2 

也將導致"未定義局部變量或方法"錯誤.

過程對象的強大在于它們能被作為參數傳遞:共享的局部變量即使傳遞出原范圍也仍然有效.

ruby> def box
    |   contents = 15
    |   get = proc{contents}
    |   set = proc{|n| contents = n}
    |   return get, set
    | end
   nil
ruby> reader, writer = box
   [#Proc:0x40170fc0>, #Proc:0x40170fac>] 
ruby> reader.call
   15
ruby> writer.call(2)
   2
ruby> reader.call
   2  


Ruby對待范圍的辦法相當聰明.顯然,上面例子里 contents 變量是由 reader 和 writer 共享的.我們也可以像上面那樣創造多對使用box的

reader-writer;每一對共享一個 contents 變量,對之間不相干擾.

ruby> reader_1, writer_1 = box
   [#Proc:0x40172820>, #Proc:0x4017280c>]
ruby> reader_2, writer_2 = box
   [#Proc:0x40172668>, #Proc:0x40172654>]
ruby> writer_1.call(99)
   99
ruby> reader_1.call
   99
ruby> reader_2.call
   15   

 
您可能感興趣的文章:
  • Ruby基本的環境變量設置以及常用解釋器命令介紹
  • Ruby中變量引用時的一些注意點
  • Ruby中類變量和實例變量的比較
  • 詳細解析Ruby中的變量
  • Ruby 中$開頭的全局變量、內部變量、隱藏變量介紹
  • ruby 實變量
  • 深入分析Ruby 變量

標簽:內江 河池 大慶 南昌 甘孜 西雙版納 棗莊 克拉瑪依

巨人網絡通訊聲明:本文標題《ruby 局部變量》,本文關鍵詞  ruby,局部,變量,ruby,局部,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ruby 局部變量》相關的同類信息!
  • 本頁收集關于ruby 局部變量的相關信息資訊供網民參考!
  • 推薦文章

    上一篇:ruby 實變量

    下一篇:ruby 類常量 解析

    主站蜘蛛池模板: 睢宁县| 布尔津县| 榆中县| 朔州市| 巴林左旗| 诏安县| 科尔| 曲沃县| 闻喜县| 南开区| 阿巴嘎旗| 尤溪县| 昌图县| 竹山县| 虹口区| 海盐县| 武隆县| 乌拉特前旗| 阜新| 景德镇市| 南溪县| 嘉黎县| 文化| 宜黄县| 于都县| 枣阳市| 东源县| 行唐县| 阳信县| 曲松县| 漠河县| 静海县| 巴中市| 达日县| 五大连池市| 永靖县| 剑川县| 洪泽县| 普洱| 黑龙江省| 宽甸|