首页 > 其他分享 >无涯教程-Swift - 可选项

无涯教程-Swift - 可选项

时间:2024-01-28 14:32:54浏览次数:29  
标签:String nil 无涯 可选项 print myString Swift Hello

Swift 4还引入了 Optionals 类型,用于处理缺少值的情况,可选的选项是"有一个值,它等于x"或"根本没有值"。

Optional是一种类型,实际上是Swift 4的新函数枚举之一,它有两个可能的值, None 和 Some(T),其中T是Swift 4中可用的正确数据类型关联值。

这是一个可选的Integer整数声明-

var perhapsInt: Int?

这是一个可选的String字符串声明-

var perhapsStr: String?

上面的声明等效于将其显式初始化为 nil ,这意味着没有值-

var perhapsStr: String?=nil

让我们以下面的示例来了解可选选项在Swift 4中的工作方式-

var myString:String?=nil

if myString != nil {
   print(myString)
} else {
   print("myString has nil value")
}

运行上述程序时,我们得到以下输出-

myString has nil value

可选与在Objective-C中对指针使用 nil 相似,但是它们适用于任何类型,而不仅仅是类。

强制解包

如果将变量定义为可选,则要从该变量中获取值,必须解包。这仅意味着在变量末尾添加一个感叹号。

var myString:String?

myString="Hello, Swift 4!"

if myString != nil {
   print(myString)
} else {
   print("myString has nil value")
}

运行上述程序时,我们得到以下输出-

Optional("Hello, Swift 4!")

现在让我们应用展开以获取变量的正确值-

var myString:String?

myString="Hello, Swift 4!"

if myString != nil {
   print( myString! )
} else {
   print("myString has nil value")
}

运行上述程序时,得到以下输出。

Hello, Swift 4!

自动解包

您可以使用感叹号而不是问号来声明可选变量,此类可选变量将自动解开,您无需在变量末尾使用任何其他的感叹号即可获取分配的值。

var myString:String!
myString="Hello, Swift 4!"

if myString != nil {
   print(myString)
} else {
   print("myString has nil value")
}

运行上述程序时,我们得到以下输出-

Hello, Swift 4!

可选绑定

使用可选绑定查找可选对象是否包含值,如果包含,则使该值可用作临时常量或变量。

if 语句的可选绑定如下-

if let constantName=someOptional {
   statements
}

让我们以一个简单的示例来了解可选绑定的用法-

var myString:String?
myString="Hello, Swift 4!"

if let yourString=myString {
   print("Your string has -\(yourString)")
} else {
   print("Your string does not have a value")
}

运行上述程序时,我们得到以下输出-

Your string has - Hello, Swift 4!

参考链接

https://www.learnfk.com/swift/swift-optionals.html

标签:String,nil,无涯,可选项,print,myString,Swift,Hello
From: https://blog.51cto.com/u_14033984/9453132

相关文章

  • 无涯教程-Swift - 变量声明
    变量为我们提供了程序可以操纵的命名存储,Swift4中的每个变量都有一个特定的类型,该类型确定变量的内存大小和布局。Swift4支持以下基本类型的变量-Int或UInt  - 用于整数。更具体地说,可以使用Int32,Int64定义32或64位有符号整数,而UInt32或UInt64定义32或64位无符号整数......
  • 无涯教程-Swift - 环境
    Swift4为学习目的提供了一个运行平台,我们将对其进行设置。您需要xCode软件才能在运行中启动Swift4编码。一旦熟悉了Swift4的概念,就可以使用xCodeIDE进行iOS/OSx应用程序开发。首先,我们认为您已经在AppleDeveloper网站上拥有一个帐户。登录后,请转到以下链接-Downloadf......
  • 无涯教程-Socket.IO - 聊天示例
    现在我们已经很熟悉Socket.IO,让我们编写一个聊天应用程序,可以在不同的聊天室中使用它进行聊天,我们将允许用户选择用户名,并允许他们使用他们聊天。因此,首先,让我们设置HTML文件以请求用户名-<!DOCTYPEhtml><html><head><title>HelloLearnfk</title></head><......
  • 无涯教程-Swift - 简介
    Swift编程语言,支持多编程范式和编译式,用来撰写基于macOS/OSX、iOS、iPadOS、watchOS和tvOS的软件。苹果公司于2014年在苹果开发者年会(WWDC)发布了Swift编程语言。从设计上苹果公司让Swift与Objective-C共存在苹果公司的操作系统上。2010年7月,苹果开发者工具部门总监克里斯·......
  • 无涯教程-Socket.IO - 命名空间
    Socket.IO允许您"Namespaces命名"Socket,这实际上意味着分配不同的端点。这是一项有用的函数,可通过在通信通道之间引入分隔来最大程度地减少资源(TCP连接)的数量,并同时在您的应用程序内分隔关注点。多个命名空间实际上共享同一WebSockets连接,从而为我们节省了服务器上的Socket端口......
  • 无涯教程-Socket.IO - 广播服务
    Broadcasting意味着向所有连接的客户端发送消息,我们可以将消息发送给所有连接的客户端,我们可以使用io.sockets.emit方法。注意-这将向所有连接的客户端ALL发出事件(该事件可能触发了此事件的Socket)。在此示例中,我们将向所有用户广播已连接客户端的数量。更新app.js文件......
  • 无涯教程-Socket.IO - 应用示例
    创建一个名为app.js的文件,然后输入以下代码来设置快速应用程序-varapp=require('express')();varhttp=require('http').Server(app);app.get('/',function(req,res){res.sendfile('index.html');});http.listen(3000,function(){conso......
  • 无涯教程-Socket.IO - 环境
    要开始使用Socket.IO进行开发,您需要安装Node和npm(节点程序包管理器)。如果您没有这些,请转到节点设置,以在本地系统上安装节点。通过在终端中运行以下命令来确认已安装节点和npm。node--versionnpm--version您应该得到类似于以下内容的输出:v17.3.08.3.0打开终端,并在......
  • 无涯教程-Socket.IO - 简介
    Socket.IO是用于实时Web应用程序的JavaScript库。它支持Web客户端和服务器之间的实时双向通信。它包括两个部分:在浏览器中运行的客户端库和用于node.js的服务器端库,这两个组件具有相同的API。实时应用实时应用程序(RTA)是在用户感知为即时或当前的时段内运行的应用程序。实......
  • 无涯教程-Scala Tuples函数
    Scala元组将固定数量的项目组合在一起,以便它们可以作为整体传递。与数组或列表不同,元组可以容纳不同类型的对象,但它们也是不可变的。以下是一个包​​含整数,字符串和控制台的元组的示例。valt=(1,"hello",Console)以下是语法糖-valt=newTuple3(1,"hello",Console)元......