我正在为Clojure做一个练习题,应该很简单,但实际上却让我很头疼,问题描述如下:
two-fer或2-fer是二对一的缩写。一个代表你,一个代表我。给定一个名称,返回一个带有消息的字符串:“One for X, one for me。”其中X是给定的名称。但是,如果缺少名称,请返回字符串:“One for you, one for me。”
这就是我所尝试的:
(defn two-fer [& name]
(if (nil? name)
"One for you, one for me."
(str "One for " name ", one for me."
)
)
然而,我最终得到了以下单元测试输出:
预期:(=“一个给鲍勃,一个给我。”(双弗/双弗“鲍勃”))实际:(不是(=“一个给鲍勃,一个给我。”“一个给(“鲍勃”),一个给我。”))
lein测试:只有两个-fer-test/name-alice-test
(name alice test)(two\u fer\u test.clj:9)应为失败:(=“一个给alice,一个给我。”(两个“爱丽丝”)实际:(不是(“一个给爱丽丝,一个给我。”“一个给(“爱丽丝”),一个给我。”)
应为(两个fer测试)(两个fer clj:5)中的错误:(=“一个给你,一个给我。”(两个fer/两个fer))实际值:java。lang.ClassCastException:类java。无法将lang.字符串转换为clojure类。lang.IFn(java.lang.String位于加载器“bootstrap”的模块java.base中;clojure.lang.IFn位于加载器“app”的未命名模块中)
我也尝试过:
(defn two-fer [& name]
(str "One for " (if (nil? name) "you" name) ", one for me.")
)
(defn two-fer [& name]
(if (nil? name)
"One for you, one for me."
(eval `(str "One for " ~name ", one for me.")
)
)
(defn two-fer [& name]
(if nil? name)
"One for you, one for me."
(clojure.string/replace (str "One for " name ", one for me.") #"\\(?\\"\\)" ""))
)
)
(defn two-fer [& names]
(str "One for " (if (empty? names) "you" (first names)) ", and one for me."))
;; or using `or` (old lisp style, not Clojure's best practice):
(defn two-fer [& names]
(str "One for " (or (first names) "you") ", and one for me."))
问题是
您可能需要这样的东西:
(defn two-fer
[& args]
(let [name (if (empty? args)
"you"
(first args))]
(str "One for " name ", one for me.")))
有结果
(two-fer "Bob") => "One for Bob, one for me."
(two-fer) => "One for you, one for me."
您可能也对这个留档源列表感兴趣。
您可以编写multi-arity函数:
(defn two-fer
([] (two-fer "you"))
([name] (str "One for " name ", one for me.")))
我有一个将sql查询读取为字符串的方法,需要将所有“\”替换为“\”。这样做是为了防止\n和\r被处理为输出中的换行符。 样本输入 (\nSELECT\na.population_id\n,a.empi_id\n\r,a.encounter_id\n,SPLIT_PART(MIN(a.service_date||'|'|| a.norm_numeric_value),'|',2)::FLOAT为e
我是C新手,需要解析字符串“var1=bob” 我在C语法方面遇到了一些问题,并且无法成功地循环输入并通过解析它来提取“bob”和“smith”。我一直在尝试使用strtok(),但没有成功。 如果有人能在这里帮助我,我将不胜感激。 非常感谢。
问题内容: 我正在尝试通过覆盖ImplicitNamingStrategyJpaCompliantImpl类中的方法defineForeignKeyName来为外键列名添加下划线,但是不起作用。下面是我创建的类, 因此,除了defineForeignKeyName方法外,其他方法也可以按预期工作,例如为表添加复数名称和下划线。当我通过代码调试时,我可以看到该控件进入用于外键列的underlyFor
我已经从Godaddy购买了SSL,我的网站托管在AWS中。我想在AWS上设置SSL。我绑定使用证书管理器导入证书。它问了我三件事: 证书体*--在这里,我从Godaddy获得了。crt文件内容 证书私钥*--这里我仍然困惑需要输入什么。请帮我做这个 证书链--在这里我输入了sf_bundle-g2-g1.crt代码。 请帮助我启用AWS中的SSL。提前致谢
问题内容: 我需要用%符号替换字符串中的空格,但是我遇到了一些问题,我尝试的是: 但这给我替换功能一个错误。 然后: 但是它仍然给我替换函数错误。 我尝试使用unicode符号: 但是它仍然会给出错误。 有一个简单的方法吗? 问题答案: 是您想要的方法。 更换 与 我建议您在Java中使用进行编码。
问题内容: 我一直试图读取文件,然后将读取的内容放入字符串中。然后,该字符串将按行拆分为多个字符串: input.txt读取为: 一个 强壮的小鸟 与一个非常 宽容的心 去 一天上学 忘记了他的食物 家 然而, 将文本变成混乱的混乱: 他的食物 我不确定替换换行符会如何严重破坏文本本身 问题答案: 我猜您正在使用Windows运行代码。请注意,如果您打印出结果字符串的长度,它将显示超过100个字符