gpt4 book ai didi

ruby - 仅显示数组的偶数

转载 作者:太空宇宙 更新时间:2023-11-03 17:13:57 26 4
gpt4 key购买 nike

我们应该创建一个数组并放入只有偶数。这是我的错误代码:

my_array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
my_array.each { |num| num % 2 == 0 ? puts num }

它引发了这个错误:

(ruby):1: syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '('
my_array.each { |num| num % 2 == 0 ? puts num }

正确的功能代码:

my_array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
my_array.each { |num| puts num unless num % 2 != 0 }

我想知道为什么我编写的代码无法运行,即使我知道如何编写工作版本。问题是否源于在我的单行 if 语句的条件部分中有 puts num

最佳答案

此语法:

my_array.each { |num| num % 2 == 0 ? puts num }

此示例中的 ? 是三元运算符的一半,它基本上是 if .. else .. end 语句的简写。

您的代码的问题是您遗漏了一半,并且它并不真正适用于您的确切结构。

要让它工作,它需要看起来像这样:

my_array.each { |num| (num % 2).zero? ? (puts num) : next } 

您需要添加语句的 else 端,它位于冒号之后。它可能不是您示例中使用的理想语法,但可以与 next 语句一起使用,在本例中该语句不执行任何操作,只是让控制流继续进行下一次迭代。

Here是关于描述如何在 Ruby 中使用三元运算符的 SO 的好答案。

关于ruby - 仅显示数组的偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51315435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com