还是变量作用域的问题吗?


#1
n = 0
while n <= 10
    n = n + 1
    println(n)
end
n

这段代码在Juliabox里运行没有问题,但在atom Juno里面就出错:

ERROR: LoadError: UndefVarError: n not defined
Stacktrace:
 [1] top-level scope at ./untitled-5aca7fd3f37f6ff9bb282a720c91555e:3 [inlined]
 [2] top-level scope at ./none:0
in expression starting at untitled-5aca7fd3f37f6ff9bb282a720c91555e:2

怎么解决?求助大神!!


#2

看上去是的

ref:

julia> n = 0
0

julia> while n <= 10
           global n
           n = n + 1
           println(n)
       end
1
2
3
4
5
6
7
8
9
10
11

julia> n
11

#3

为什么在Juliabox里运行没问题,在atom juno里面就出错?是我没设置好吗?


#4

两边的版本?

这个特性好像是 1.0 引入的


#5

都是1.0的,不知道为啥非得加上global才行


#6

因为jupyter里面,每个cell的域不是顶级的,
而Juno是顶级的域。
顶级的域中的变量是global。
我是猜测的啊。


#7

又长知识了:+1: