为什么在Ruby中String的字符元素不能使用危险的方法?

卡洛斯·罗哈斯(Carlos Rojas)

当我应用该upcase!方法时,我得到:

a="hello"
a.upcase!
a # Shows "HELLO"

但是在另一种情况下:

b="hello"
b[0].upcase!
b[0]  # Shows h
b # Shows hello

我不明白为什么upcase!应用到b[0]没有效果。

巴斯豪斯

当您在字符串中选择单个字符时,您没有引用该特定字符,而是在调用访问器/更改器函数来执行评估:

2.0.0-p643 :001 > hello = "ruby"
 => "ruby" 
2.0.0-p643 :002 > hello[0] = "R"
 => "R" 
2.0.0-p643 :003 > hello
 => "Ruby" 

在运行危险方法的情况下,访问器会请求该值,然后对其进行操作并更新新变量,但是由于字符与字符串之间不再存在连接,因此不会更新引用。

2.0.0-p643 :004 > hello = "ruby"
 => "ruby" 
2.0.0-p643 :005 > hello[0].upcase!
 => "R" 
2.0.0-p643 :006 > hello
 => "ruby" 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果lisp中的字符串是向量,为什么不能使用svref访问第一个元素?

来自分类Dev

为什么不能使用printf格式替换字符串中的子字符串?

来自分类Dev

为什么列表元素不能使用显示首字母正确显示

来自分类Dev

为什么不能使用反向迭代器从std :: map中删除元素?

来自分类Dev

为什么不能使用c#从csv文件中解码波斯字符?

来自分类Dev

为什么在Ruby中String的字符元素不能使用危险的方法?

来自分类Dev

为什么:: before伪元素不能与:visited伪类一起使用?

来自分类Dev

为什么我不能使用“ fgets”来读取Struct元素的字符串?

来自分类Dev

如果默认字符串为null,为什么不能使用String.Contains()?

来自分类Dev

为什么在创建const字符串变量时不能使用String.Empty?

来自分类Dev

为什么在Swift中不能使用UIRefreshControl?

来自分类Dev

为什么在我的蚂蚁设计中不能使用defaultOpenKeys?

来自分类Dev

为什么++ =在Scala中不能使用相同的列表?

来自分类Dev

为什么在flutter的main中不能使用await getTemporaryDirectory

来自分类Dev

为什么在drake R计划中不能使用ls()?

来自分类Dev

为什么我不能使用java.awt.geom.Point2D中的距离方法?

来自分类Dev

为什么我不能使用Redux从React.js中的数组中删除元素

来自分类Dev

为什么我不能使用方法setState()来数组元素

来自分类Dev

为什么我不能使用cout在C ++中打印字符串值的数组?

来自分类Dev

为什么在Windows上的makefile中不能使用for?

来自分类Dev

为什么不能使用.colspan设置此元素的colspan?

来自分类Dev

Ruby on Rails-为什么不能使用ActiveRecord :: Base方法?在哪里使用?

来自分类Dev

为什么我不能使用私有抽象方法?

来自分类Dev

为什么lambda不能使用这种匿名方法?

来自分类Dev

为什么我不能使用makeRange方法

来自分类Dev

为什么不能使用python和Chrome Webdriver单击Selenium中的一个元素?

来自分类Dev

为什么我的substr调用不能使用→字符?

来自分类Dev

为什么使用Firefox在applescript,shell脚本,Perl,ruby中打开URL后不能使用参数?

来自分类Dev

在 iOS 中,如果 UILabel 继承自 UIView 那么为什么 UILabel 不能使用 animate 方法?

Related 相关文章

  1. 1

    如果lisp中的字符串是向量,为什么不能使用svref访问第一个元素?

  2. 2

    为什么不能使用printf格式替换字符串中的子字符串?

  3. 3

    为什么列表元素不能使用显示首字母正确显示

  4. 4

    为什么不能使用反向迭代器从std :: map中删除元素?

  5. 5

    为什么不能使用c#从csv文件中解码波斯字符?

  6. 6

    为什么在Ruby中String的字符元素不能使用危险的方法?

  7. 7

    为什么:: before伪元素不能与:visited伪类一起使用?

  8. 8

    为什么我不能使用“ fgets”来读取Struct元素的字符串?

  9. 9

    如果默认字符串为null,为什么不能使用String.Contains()?

  10. 10

    为什么在创建const字符串变量时不能使用String.Empty?

  11. 11

    为什么在Swift中不能使用UIRefreshControl?

  12. 12

    为什么在我的蚂蚁设计中不能使用defaultOpenKeys?

  13. 13

    为什么++ =在Scala中不能使用相同的列表?

  14. 14

    为什么在flutter的main中不能使用await getTemporaryDirectory

  15. 15

    为什么在drake R计划中不能使用ls()?

  16. 16

    为什么我不能使用java.awt.geom.Point2D中的距离方法?

  17. 17

    为什么我不能使用Redux从React.js中的数组中删除元素

  18. 18

    为什么我不能使用方法setState()来数组元素

  19. 19

    为什么我不能使用cout在C ++中打印字符串值的数组?

  20. 20

    为什么在Windows上的makefile中不能使用for?

  21. 21

    为什么不能使用.colspan设置此元素的colspan?

  22. 22

    Ruby on Rails-为什么不能使用ActiveRecord :: Base方法?在哪里使用?

  23. 23

    为什么我不能使用私有抽象方法?

  24. 24

    为什么lambda不能使用这种匿名方法?

  25. 25

    为什么我不能使用makeRange方法

  26. 26

    为什么不能使用python和Chrome Webdriver单击Selenium中的一个元素?

  27. 27

    为什么我的substr调用不能使用→字符?

  28. 28

    为什么使用Firefox在applescript,shell脚本,Perl,ruby中打开URL后不能使用参数?

  29. 29

    在 iOS 中,如果 UILabel 继承自 UIView 那么为什么 UILabel 不能使用 animate 方法?

热门标签

归档