[我的疑问]String? = "Skiy Chan" 中的问号是什么意思?

1 var optionalName : String? = "Skiy Chan"

String? = "Skiy Chan" 中的问号是什么意思?
目前还在看api和视频教程,暂时还没弄懂这个意思。特别是api中的那串代码:

var optionalString : String? = "Hello"

optionalString == nil

var optionalName : String? = "Skiy Chan"

var greeting = "Hello!"

if let name = optionalName {

    greeting = "Hello, \(name)"

}

println(greeting)

println出来的结果是:

Hello, Skiy Chan

难道是这样表示的?:

optionalName ? nil : "Skiy Chan"

++++++++++++++++++++++++++++++++++++++++++++++++++通过cocoachina的一篇文章,我已经基本明白这意思了:
let hashValue = strValue?.hashValue

strValue是Optional的字符串,如果strValue是nil,则hashValue也为nil,如果strValue不为nil,hashValue就是strValue字符串的哈希值

上述片段取于:http://joeyio.com/ios/2014/06/04/swift---/

 

[我的疑问]String? = "Skiy Chan" 中的问号是什么意思?,布布扣,bubuko.com

时间: 2024-10-18 23:10:40

[我的疑问]String? = "Skiy Chan" 中的问号是什么意思?的相关文章

MAC OS X socket 1 [a simple example]

Server Code C: // // main.c // unix_socket_very_simple_server // // Created by DMD on 4/7/14. /* Function : Server for unix (OS X MAC) */ #include <stdio.h> #include <stdlib.h> #include <sys/types.h> // unix socket #include <sys/socke

MAC OS X socket 2 [a simple example]

Xcode->New Workspace XCode->New Project: C: [Add to : ?] Server: code // // main.c // s2 // Server // Created by DMD on 4/7/14. #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #includ

图像载入 imshow()[OpenCV 笔记5]

void imshow(const string& winname InputArray mat); winname 窗口表识名称 mat 需要显示的图像.InputArray类型,声明如下 typedef const _InputArray& InputArray; _InputArray定义比较复杂,类里先定义了一个枚举,然后是各类的模版类型和一些方法.遇到InputArray/OutputArray类型,可以把它当作Mat类型处理. 图像大小缩放 如果窗口是用CV_WINDOW_AU

[Spring Data Repositories]学习笔记--使用现有的repository

以下内容是在学习Spring-Data-mongoDB中的Spring Data Repositories时做的一些笔记.备忘! 感觉学习还是看官方的资料比较透彻一些. Spring Data Repositories目的:减少重复的持久化代码. 常用的几个repository interface, Repository <-- CurdRepository <-- PagingAndSortingRepository 最后一个主要是用来做分页和排序用的. Repository使用步骤 1.

[java web 入门](一)MyEclipse &amp;amp; HelloWorld 记录

第一部,下载安装MyEclipse for mac. http://downloads.myeclipseide.com/downloads/products/eworkbench/2014/installers/myeclipse-spring-2014-GA-offline-installer-macosx.dmg   http://downloads.myeclipseide.com/downloads/products/eworkbench/2014/installers/myeclip

Linux rpm 命令参数使用详解[介绍和应用]

RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的"添加/删除程序" rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两种.二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译.安装.源代码包经常以src.rpm作为后缀名. 常用命令组合: -ivh:安装显示安装进度--install--verbose--hash -Uvh:升级软件包--Update: -qpl:列出RPM软件包内的文件信息[Q

[转]在iOS项目中使用CorePlot框架

转载地址:http://blog.csdn.net/llfjfz/article/details/7849190#comments Core Plot是OS X和IOS下的一个开源图形库,它提供数据的可视化处理,就是画曲线图.柱状图和饼图等等.如何在项目中使用Core Plot的静态库呢?以下是几个步骤: 首先先去Google Code下载Core Plot图形库,网址 http://code.google.com/p/core-plot/ .目前该网址提供了CorePlot_1.0.zip下载

[LeetCode蠕动系列]Sort List

这题前一阵子就看到了,一直没时间做,昨晚睡前想了想,要求n*log(n)以内的时间复杂度,第一时间想到的就是归并.快排和希尔排序(注:希尔排序时间为O(n^1.3),在数据量大于2的情况下小于n*log(n)),个人以为,链表的特性更适合归并,所以采用归并排序,实现的merge代码如下: public static ListNode merge(ListNode rhead, ListNode lhead) { ListNode head = null; if (rhead.val <= lhe

[猜你喜欢]冠军“yes,boy!”分享,含竞赛源代

[猜你喜欢]冠军“yes,boy!”分享,含竞赛源代码 DataCastle运营 发表于 2016-7-20 17:31:52 844  3  5 我是Yes,boy! ,来自东北大学计算机学院.在猜你喜欢推荐系统竞赛中,很幸运取得第一名的成绩,下面我简单介绍下我的思路. 本次比赛的赛题背景是给出了约3400万条数据,包含一个商品网站站内顾客在某一时刻对某一个商品的打分值,分值范围为1至5分.目的是通过对这些数据的学习和训练,准确预测某时刻某个用户对某个未评分商品的评分. 通过背景可知这是一个关