亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問在Ruby中"=="和"==="的區別?

請問在Ruby中"=="和"==="的區別?

慕虎7371278 2019-10-21 14:10:29
Ruby中"=="和"==="的區別
查看完整描述

4 回答

?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

恒等于(===):檢查兩個操作數是否一樣,也就是檢查沒有進行數據類型轉換的操作數的值是否相等。
==,是在一定類型轉化后判斷操作數的值是否相等。

查看完整回答
反對 回復 2019-10-26
?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

Ruby 是一個強大的面向對象腳本語言(本文所用 Ruby 版本為1.8.6),在 Ruby 中 Symbol 表示“名字”,比如字符串的名字,標識符的名字。
創建一個 Symbol 對象的方法是在名字或者字符串前面加上冒號:

創建 symbol 對象

:foo
:test

:”abc”
:”I am a boy”

你可能會問,字符串就是字符串,干嗎還有字符串的名字?這是因為在 Ruby 中字符串也是一種對象,即 String對象。無論其結構還是操作和 Symbol 對象都是不同的。
在 Ruby 中每一個對象都有唯一的對象標識符(Object Identifier),可以通過 object_id 方法來得到一個對象的標識符。我們來看看 Symbol 對象和 String 對象的差別:

Ruby 對象標識符

irb(main):001:0> puts :foo.object_id
327458
=> nil
irb(main):002:0> puts :foo.object_id
327458
=> nil
irb(main):003:0> puts :"foo".object_id
327458
=> nil
irb(main):004:0> puts "foo".object_id
24303850
=> nil
irb(main):005:0> puts "foo".object_id
24300010
=> nil
irb(main):006:0> puts "foo".object_id
24296170
=> nil



查看完整回答
反對 回復 2019-10-26
?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

  1、 模塊不能實例化,類不能include
  2、如果模塊和類不在用一個文件中,如果要使用include,先使用require把文件引入
  3、include不是簡單的將模塊的實例變量和方法拷貝到類中,而是建立一個由類到所包含模塊的引用
  4、如果有多個include,將依次生成代理類,最后一個include的將是該類的直接超類,依次向上衍生
  5、含有include的模塊或者類定義,可以訪問它所包含的常量,類變量和實例方法。如果一個模塊被包含,改模塊的常量,類變量,實例方法都被綁定到該類的一個匿名超類中,類的對象會響應發送給模塊實例方法的消息
  6、模塊里可以定義一個initialize方法,當創建包括模塊的類的對象時,滿足一下條件之一,則模塊的該方法將被調用.

查看完整回答
反對 回復 2019-10-26
?
holdtom

TA貢獻1805條經驗 獲得超10個贊

區別是 MRuby 不支持超過 512 個局部變量.
CRuby 的字節碼在內存使用上是比較奢侈的, 而 MRuby 為了削減內存使用, 字節碼設計得和 Lua 的很相似, 而其壓縮表示限制了局部變量的個數
Lua 的字節碼編碼方式 (32bit, A, B, C 一般為局部變量編號), 可以看到操作數最少都有 8 位, 可以表示高達 256 個局部變量!

查看完整回答
反對 回復 2019-10-26
  • 4 回答
  • 0 關注
  • 694 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號