Ios 错误是:在REPL的顶层输入变量时,当前必须有一个初始值

Ios 错误是:在REPL的顶层输入变量时,当前必须有一个初始值,ios,swift,swift-playground,Ios,Swift,Swift Playground,生成以下错误: 错误:在REPL的顶层输入变量时,当前必须具有初始值 我知道这是个奇怪的问题 当操场设置为手动运行时会发生这种情况 为了避免此问题,您必须将操场从手动运行设置为 自动运行 按住控制台顶部的小三角形,将弹出选项 步骤2:现在选择从那里自动运行 就这样 我知道这是个奇怪的问题 当操场设置为手动运行时会发生这种情况 为了避免此问题,您必须将操场从手动运行设置为 自动运行 按住控制台顶部的小三角形,将弹出选项 步骤2:现在选择从那里自动运行 就这样 游乐场: 错误:在REPL的顶

生成以下错误:


错误:在REPL的顶层输入变量时,当前必须具有初始值


我知道这是个奇怪的问题 当操场设置为手动运行时会发生这种情况 为了避免此问题,您必须将操场从手动运行设置为 自动运行

  • 按住控制台顶部的小三角形,将弹出选项
  • 步骤2:现在选择从那里自动运行

就这样

我知道这是个奇怪的问题 当操场设置为手动运行时会发生这种情况 为了避免此问题,您必须将操场从手动运行设置为 自动运行

  • 按住控制台顶部的小三角形,将弹出选项
  • 步骤2:现在选择从那里自动运行
就这样

游乐场:
错误:在REPL的顶层输入变量时,当前必须具有初始值

这表示在游乐场中直接声明的变量未在声明的同时初始化

在顶层这样声明的变量将在声明期间初始化,或至少在
init
中初始化,但由于游乐场没有
init
,因此需要提前初始化

因此:

相当于:

var vb: Float //error: variables currently must have an initial value when entered at the top level of the REPL
vb = 12.13
print(vb)

顶级对象是那些直接在游乐场中编写的对象,即不在函数/类/结构中,因此它们被视为显式初始化的属性

因此,
var vb:Float
向编译器指示它是一个名为
vb
Float
类型的变量,应该为它指定一个显式值。
但当它发现没有赋值操作时,就会抛出编译时错误


解决:
  • 显式赋值

    class Playground {        
        var vb: Float
    
        init() {} //Error: Return from initializer without initializing all stored properties
    
        func main() {
            vb = 12.13
            print(vb)
        }        
    }
    
  • 声明为
    隐式展开可选
    ,使用

    var vb: Float = 12.13 //initializes with an explicit value
    print(vb)
    
  • var vb: Float! //initializes as nil
    vb = 12.13
    print(vb)
    
  • 将其包装在函数中:

    var vb: Float? //initializes as nil
    vb = 12.13
    print(vb)
    

  • 注意:此答案特定于读取-评估-打印循环(REPL)中的顶级对象。


    错误:在REPL的顶层输入变量时,当前必须具有初始值

    这表示在游乐场中直接声明的变量未在声明的同时初始化

    在顶层这样声明的变量将在声明期间初始化,或至少在
    init
    中初始化,但由于游乐场没有
    init
    ,因此需要提前初始化

    因此:

    相当于:

    var vb: Float //error: variables currently must have an initial value when entered at the top level of the REPL
    vb = 12.13
    print(vb)
    

    顶级对象是那些直接在游乐场中编写的对象,即不在函数/类/结构中,因此它们被视为显式初始化的属性

    因此,
    var vb:Float
    向编译器指示它是一个名为
    vb
    Float
    类型的变量,应该为它指定一个显式值。
    但当它发现没有赋值操作时,就会抛出编译时错误


    解决:
  • 显式赋值

    class Playground {        
        var vb: Float
    
        init() {} //Error: Return from initializer without initializing all stored properties
    
        func main() {
            vb = 12.13
            print(vb)
        }        
    }
    
  • 声明为
    隐式展开可选
    ,使用

    var vb: Float = 12.13 //initializes with an explicit value
    print(vb)
    
  • var vb: Float! //initializes as nil
    vb = 12.13
    print(vb)
    
  • 将其包装在函数中:

    var vb: Float? //initializes as nil
    vb = 12.13
    print(vb)
    


  • 注意:此答案特定于Read-Eval-Print循环(REPL)中的顶级对象

    您是否尝试过
    var vb:Float=12.13
    ?在REPL错误的顶层输入变量时,当前必须有一个初始值您是否尝试过
    var vb:Float=12.13
    ?在REPL错误的顶层输入变量时,当前必须有一个初始值