我创建了一个函数来检查第一个字符串是否以第二个字符串结尾。
在 Java 中,我们有现成的方法可以检查这一点,但在 Clojure 中,我找不到这样的方法,所以我编写了以下自定义函数:
(defn endWithFun [arg1 arg2]
(= (subs arg1 (- (count arg1) (count arg2)) (count arg1)) arg2))
输出:
> (endWithFun "swapnil" "nil")
true
> (endWithFun "swapnil" "nilu")
false
这正如预期的那样工作。
我想知道,是否有类似的替代方案? 在我的情况下,我进行的比较是区分大小写的。我也想忽略大小写敏感性。
(.)
来使用String
类的Java API,我尝试了(subs "swapbil" 1 4)
和(. "swapnil" substring 1 4)
都给出了答案wap,如果我在Clojure中使用Java,会有任何性能降低吗?还是两者性能相同? - swapyclojure.string
函数都使用类型提示来避免反射,因此Clojure和Java版本之间应该没有明显的性能差异。 - Alex(Constructor. a b c)
和(new Constructor a b c)
。 - kotarak