日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Expressions are not allowed at the top level

發布時間:2025/7/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Expressions are not allowed at the top level 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

? ? ? Swift中,直接在類的外面調用類內部的方法,會出現Bug:Expressions are not allowed at the top level。

原因是:

  在App工程里,?.swift 文件都是編譯成模塊的,不能有??top level code。

  先明確一個概念,一個 .swift 文件執行是從它的第一條非聲明語句(表達式、控制結構)開始的,同時包括聲明中的賦值部分(對應為 mov 指令或者 lea 指令),所有這些語句,構成了該 .swift 文件的 top_level_code() 函數。而所有的聲明,包括結構體、類、枚舉及其方法,都不屬于 top_level_code() 代碼部分,其中的代碼邏輯,包含在其他區域,top_level_code() 可以直接調用他們。程序的入口是隱含的一個 main(argc, argv) 函數,該函數執行邏輯是設置全局變量 C_ARGC C_ARGV,然后調用 top_level_code()。不是所有的 .swift 文件都可以作為模塊,目前看,任何包含表達式語句和控制語句的 .swift 文件都不可以作為模塊。正常情況下模塊可以包含全局變量(var)、全局常量(let)、結構體(struct)、類(class)、枚舉(enum)、協議(protocol)、擴展(extension)、函數(func)、以及全局屬性(var { get set })。這里的全局,指的是定義在 top level 。這里說的表達式指 expression ,語句指 statement ,聲明指 declaration 。因此,如果代碼中直接在類的外面調用類內部的方法,則該.swift 文件是編譯不成的模塊的,所以會編譯報錯。

?

轉載于:https://www.cnblogs.com/yaoyao0110/p/5499738.html

總結

以上是生活随笔為你收集整理的Expressions are not allowed at the top level的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。