gpt4 book ai didi

ruby - 为什么这个代码片段在应该返回 "true"时输出 "false"?

转载 作者:行者123 更新时间:2023-12-04 23:11:56 27 4
gpt4 key购买 nike

ALLOWED_TARGETS = ["dresden", "paris", "vienna"]

def missile_launch_allowed(target, secret_key)
allowed = true
аllowed = false if secret_key != 1234
allowed = false unless ALLOWED_TARGETS.include?(target)
allowed
end

puts(missile_launch_allowed("dresden", 9999))

在博客中找到此代码片段。手动跟踪代码给了我 false ,但是为什么在运行时这个输出为真?

我没有看到的部分目前只是我没有想到。请帮助我更好地理解Ruby。

最佳答案

allowed 不是 аllowed ;你有两个不同的变量。具体来说,第一个字母是不同的:第一个变量有'LATIN SMALL LETTER A'(U+0061),第二个有'CYRILLIC SMALL LETTER A'(U+0430)。大多数(所有?)字体中的字形相似或相同。因此,您的代码等效于:

ALLOWED_TARGETS = ["dresden", "paris", "vienna"]

def missile_launch_allowed(target, secret_key)
first = true
second = false if secret_key != 1234
first = false unless ALLOWED_TARGETS.include?(target)
first
end

puts(missile_launch_allowed("dresden", 9999))

通过更明智地重命名变量,您得到结果的原因应该很明显。

关于ruby - 为什么这个代码片段在应该返回 "true"时输出 "false"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58604858/

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