首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >clojure返回hello world,输出中没有任何内容

clojure返回hello world,输出中没有任何内容
EN

Stack Overflow用户
提问于 2022-04-28 18:29:20
回答 3查看 97关注 0票数 0

我刚开始学习Clojure,我有自己的Clojure脚本,但是它没有返回我所希望的输出(Hello World)。这是我的代码:

代码语言:javascript
复制
(ns com.playground.core
  (:gen-class))

(defn -main 
  [] 
  ((defn CHEESE
     []
     (str "Hello World"))

   (CHEESE)))

这是我在REPL中得到的输出:

代码语言:javascript
复制
clj꞉com.playground.core꞉> 
#'com.playground.core/-main

我想在输出中看到Hello World

EN

Stack Overflow用户

发布于 2022-05-13 21:56:39

事实上,这并不是完全错误的。这种返回是“申报的返回”。

例如,您在-main命名空间中定义了一个com.playground.core

返回是此声明#'com.playground.core/-main的符号。

要打印Hello world消息,需要在声明后调用函数CHEESE

所以..。关于双括号,这不是好事,但不影响他。另一点是函数名,它也不好。考虑用烤肉串。

您还可以考虑更显式地保留函数声明。类似这样的事情;

代码语言:javascript
复制
(ns com.playground.core
  (:gen-class))

(defn CHEESE [] (str "Hello World"))

(defn -main []
  (CHEESE))

但同时你也没在打印“你好世界”。您只声明一个返回字符串类型的函数(奶酪)。

要打印,您需要调用一个打印函数。

代码语言:javascript
复制
(ns com.playground.core
  (:gen-class))

(defn hello [] (str "Hello World"))

(defn -main []
  (print (hello)))

我做了声明的演变来更好地解释

因此,可以使用let alternative和threading macros改进代码。

考虑使用https://kimh.github.io/clojure-by-example/https://tryclojure.org/更好地理解这些选项:)

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72048648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档