首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ruby - uniq之间的区别是什么?和uniq

ruby - uniq之间的区别是什么?和uniq
EN

Stack Overflow用户
提问于 2015-11-25 18:04:16
回答 2查看 4.8K关注 0票数 8
代码语言:javascript
复制
a = [1,2,3]
a.uniq!  # nil
a.uniq  # [1,2,3]

为什么是a.uniq!不是1,2,3?

告诉我原因。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-25 18:09:13

大多数方法以bang (!)结尾。更改变量,而没有变量的则返回更改后的变量。

所以,如果你有这样的东西

代码语言:javascript
复制
a = [1, 1, 2, 3]

a.uniq将返回[1, 2, 3],但不会更改a,而a!将修改a以与[1, 2, 3]相等

代码语言:javascript
复制
[1] pry(main)> a = [1,1,2,3]
=> [1, 1, 2, 3]
[2] pry(main)> a.uniq
=> [1, 2, 3]
[3] pry(main)> a
=> [1, 1, 2, 3]
[4] pry(main)> a.uniq!
=> [1, 2, 3]
[5] pry(main)> a
=> [1, 2, 3]
[6] pry(main)> a.uniq!
=> nil
[7] pry(main)> a
=> [1, 2, 3]
票数 8
EN

Stack Overflow用户

发布于 2015-11-25 18:11:56

您需要阅读红宝石文档。

uniq方法通过删除self中的重复值返回一个新数组。如果没有找到重复项,则返回相同的数组值。

代码语言:javascript
复制
a = [ "a", "a", "b", "b", "c" ]
a.uniq  # => ["a", "b", "c"]

b = [ "a", "b", "c" ]
b.uniq  # => ["a", "b", "c"]

uniq!方法从self中删除重复的元素,如果不进行任何更改(即没有找到重复的元素),则返回nil

代码语言:javascript
复制
a = [ "a", "a", "b", "b", "c" ]
a.uniq!   # => ["a", "b", "c"]

b = [ "a", "b", "c" ]
b.uniq!   # => nil
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33923492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档