Chapter3-Attributes 新增 5.3 缺失内容 (#1159)
* chore: 更新方法名与 propertyWrapper 中对于本地变量的描述 * chore: 翻译 resultBuilder 与 Result-Building Methods * feat: 新增结果构造器翻译 * chore: 修改结果构造方法的翻译 * chore: 修改结果转换的翻译 * chore: 修改不合适的翻译 * feat: 新增 main 节 Co-authored-by: WAMaker <wamaker@WAMakerdeMacBook-Pro-2.local>
This commit is contained in:
@ -24,6 +24,8 @@
|
||||
- `iOSApplicationExtension`
|
||||
- `macOS`
|
||||
- `macOSApplicationExtension`
|
||||
- `macCatalyst`
|
||||
- `macCatalystApplicationExtension`
|
||||
- `watchOS`
|
||||
- `watchOSApplicationExtension`
|
||||
- `tvOS`
|
||||
@ -257,6 +259,29 @@ print(wrapper.x)
|
||||
|
||||
该特性不能用于嵌套在函数内的声明,也不能用于 `fileprivate` 或 `private` 访问级别的声明。在内联函数内定义的函数和闭包都是隐式内联的,即使他们不能标记该特性。
|
||||
|
||||
### `main` {#main}
|
||||
|
||||
将该特性用于结构体、类,或枚举的声明,表示它包含了程序流的顶级入口。类型必须提供一个不接收任何参数,且返回值为 `Void` 的 `main` 类型函数。如下所示:
|
||||
|
||||
```swift
|
||||
@main
|
||||
struct MyTopLevel {
|
||||
static func main() {
|
||||
// 顶级代码从这里开始
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
换一个说法,应用了 `main` 特性的类型所必须满足的条件,与遵循下面这个假想的协议一样:
|
||||
|
||||
```swift
|
||||
protocol ProvidesMain {
|
||||
static func main() throws
|
||||
}
|
||||
```
|
||||
|
||||
编译生成可执行程序的 Swift 代码最多只能拥有一个顶级代码入口,请参阅[顶级代码](../03_language_reference/06_Declarations.md#top-level-code)。
|
||||
|
||||
### `nonobjc` {#nonobjc}
|
||||
|
||||
针对方法、属性、下标、或构造器的声明使用该特性将覆盖隐式的 `objc` 特性。`nonobjc` 特性告诉编译器该声明不能在 Objective-C 代码中使用,即便它能在 Objective-C 中表示。
|
||||
@ -278,6 +303,8 @@ import AppKit
|
||||
NSApplicationMain(CommandLine.argc, CommandLine.unsafeArgv)
|
||||
```
|
||||
|
||||
编译生成可执行程序的 Swift 代码最多只能拥有一个顶级代码入口,请参阅[顶级代码](../03_language_reference/06_Declarations.md#top-level-code)。
|
||||
|
||||
### `NSCopying` {#nscopying}
|
||||
|
||||
该特性用于修饰一个类的存储型变量属性。该特性将使属性的设值方法使用传入值的`副本`进行赋值,这个值由传入值的 `copyWithZone(_:)` 方法返回,而不是传入值本身。该属性的类型必需符合 `NSCopying` 协议。
|
||||
@ -656,6 +683,8 @@ struct ArrayBuilder {
|
||||
|
||||
如果你不想使用这个特性,可以提供一个 `main.swift` 文件,并在代码顶层调用 `UIApplicationMain(_:_:_:_:)` 函数。比如,如果你的应用程序使用一个继承于 `UIApplication` 的自定义子类作为主要类,你可以调用 `UIApplicationMain(_:_:_:_:)` 函数而不是使用该特性。
|
||||
|
||||
编译生成可执行程序的 Swift 代码最多只能拥有一个顶级代码入口,请参阅[顶级代码](../03_language_reference/06_Declarations.md#top-level-code)。
|
||||
|
||||
### `usableFromInline` {#usablefrominline}
|
||||
|
||||
该特性用于函数、方法、计算属性、下标、构造器或析构器的声明,以在同一模块中允许该符号用于内联代码的声明。声明必须具有 `internal` 访问级别修饰符。被标记为 `usableFromInline` 的结构体或类它们属性的类型只能是被标记为 public 或者 `usableFromInline` 的类型。被标记为 `usableFromInline` 的枚举,它 case 的真实值或者关联类型只能是被标记为 public 或者 `usableFromInline` 的类型。
|
||||
|
||||
Reference in New Issue
Block a user