gpt4 book ai didi

if-statement - 如果出现错误的类型,防止运行时错误

转载 作者:行者123 更新时间:2023-12-03 08:43:19 24 4
gpt4 key购买 nike

我目前正在尝试建立一个简单的函数,该函数读取整数列表并按如下所示返回每个整数的平方:

(defn square-seq
[s]
(if (string? s)
(s = nil)
(map #(* % %) s)))

但是我希望代码能够处理字符串输入,并且只需将它们默认为数字值即可防止ClassCastException。如我
(square-seq ["Hello" 2 3])

那么返回值为:
(1 4 9) or (nil)

不知道我是想得太多还是只是太笨了,但我不知道如何让它在我的生命中发挥作用,任何帮助将不胜感激!

最佳答案

您正在顶层检查字符串,因此很可能永远不会到达该分支。您必须检查它实际触发错误的位置(在anon-fn内部)。

因此,我首先要编写一个函数,执行“安全平方”,您的square-seq可以调用该函数。

(defn square
[x]
(if (string? x)
x
(* x x)))

(defn square-seq
[xs]
(map square xs))

(square-seq ["Hello" 42])
; ⇒ ("Hello" 1764)

关于if-statement - 如果出现错误的类型,防止运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59713664/

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