首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何化名quit()退出?

如何化名quit()退出?
EN

Stack Overflow用户
提问于 2014-08-20 15:27:39
回答 3查看 9.8K关注 0票数 7

这只是一个方便,但我认为是有用的。注意,IPython允许纯退出,就像Matlab一样。因此,朱莉娅允许别名是合理的。

谢谢你对如何做这件事的任何想法。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-20 16:36:14

朱莉娅辞职

如果您从命令行使用Julia,那么ctrl就能工作。但是,如果您的目的是通过键入命令来退出,这是不可能完全按照您希望的方式进行的,因为在REPL中键入https://github.com/JuliaLang/julia/blob/master/base/client.jl#L38已经有一个意义,即返回与退出相关的值,即函数退出。

代码语言:javascript
复制
julia> quit
quit (generic function with 1 method)

julia> typeof(quit)
Function

也是Python

但这并不罕见,比如Python也有类似的行为

代码语言:javascript
复制
>>> quit
Use quit() or Ctrl-D (i.e. EOF) to exit

使用宏

在Julia中使用\q可能很好,就像在postgres REPL一样,但不幸的是\也是已经有意义了。但是,如果您正在寻找一种简单的方法来完成此操作,那么使用宏如何?

代码语言:javascript
复制
julia> macro q() quit() end

julia> @q

使朱莉娅退出

如果将宏定义放置在.juliarc.jl文件中,则每次运行解释器时都可以使用宏定义。

票数 17
EN

Stack Overflow用户

发布于 2014-08-21 01:32:32

正如waTeim所指出的,当您在REPL中键入quit时,它只显示函数本身…没有办法改变这种行为。如果不调用函数,则无法执行该函数,在Julia的语法中,调用函数的方式有限。

但是,您可以做的是更改函数的显示方式。这非常麻烦,而且不能保证工作正常,但是如果您非常想要这种行为,下面是您可以做的事情:将此行为黑客到显示方法中。

代码语言:javascript
复制
julia> function Base.writemime(io::IO, ::MIME"text/plain", f::Function)
           f == quit && quit()
           if isgeneric(f)
               n = length(f.env)
               m = n==1 ? "method" : "methods"
               print(io, "$(f.env.name) (generic function with $n $m)")
           else
               show(io, f)
           end
       end
Warning: Method definition writemime(IO,MIME{symbol("text/plain")},Function) in module Base at replutil.jl:5 overwritten in module Main at none:2.
writemime (generic function with 34 methods)

julia> print # other functions still display normally
print (generic function with 22 methods)

julia> quit # but when quit is displayed, it actually quits!

$

不幸的是,没有比::Function更具体的类型了,所以您必须完全覆盖writemime(::IO,::MIME"text/plain",::Function)定义,复制它的实现。

还请注意,这是相当意外和有点危险的。某些库可能最终会试图显示函数quit…。导致你失去了那次会议的工作。

票数 3
EN

Stack Overflow用户

发布于 2022-01-07 07:43:34

与朱莉娅的辞职有关

我在寻找一些简单的东西。这个问题自2017年以来就没有更新过,因为我现在试着学习Julia,并花一些时间搜索一些简单和类似于python的内容。在这里,我发现:你可以用:

代码语言:javascript
复制
exit()

备注

我使用julia 1.53

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

https://stackoverflow.com/questions/25408705

复制
相关文章

相似问题

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