文件名称:Swift标记::label:包装类型,可提供更安全,更具表现力的代码
文件大小:53KB
文件格式:ZIP
更新时间:2024-02-26 19:23:45
swift type-safety tagged-types conditional-conformance SwiftSwift
:label: 已标记 包装器类型,用于提供更安全,更具表现力的代码。 目录 动机 我们经常使用过于笼统或持有太多值的类型,而不是我们的领域所需要的类型。 有时我们只想在类型级别上区分两个看似等效的值。 电子邮件地址不过是String ,但应在使用方式上加以限制。 并且,虽然User ID可以用Int表示,但它应该与基于Int的Subscription ID区分开。 通过将基本类型轻松包装在更特定的上下文中,标记可以帮助解决编译时的严重运行时错误。 问题 Swift有一个非常强大的类型系统,但是像这样对大多数数据建模仍然很常见: struct User { let id : Int let
【文件预览】:
swift-tagged-main
----.gitignore(1KB)
----Tagged.podspec(1KB)
----Sources()
--------TaggedMoney()
--------Tagged()
--------TaggedTime()
----Tagged.xcodeproj()
--------xcshareddata()
--------TaggedMoneyTests_Info.plist(723B)
--------project.xcworkspace()
--------TaggedMoney_Info.plist(723B)
--------TaggedTests_Info.plist(723B)
--------TaggedTime_Info.plist(723B)
--------project.pbxproj(100KB)
--------TaggedTimeTests_Info.plist(723B)
--------Tagged_Info.plist(723B)
----Makefile(817B)
----.swiftpm()
--------xcode()
----Tagged.playground()
--------Contents.swift(1KB)
--------contents.xcplayground(107B)
----CODE_OF_CONDUCT.md(3KB)
----LICENSE(1KB)
----Info.plist(701B)
----Tagged.xcworkspace()
--------xcshareddata()
--------contents.xcworkspacedata(410B)
----.github()
--------workflows()
----TaggedMoney.podspec(1KB)
----README.md(13KB)
----TaggedTime.podspec(1KB)
----Package.swift(958B)
----Tests()
--------TaggedTests()
--------TaggedTimeTests()
--------TaggedMoneyTests()
----project.yml(2KB)