swift4 - 如何获取名称中的第一个字符
问题描述
我的班级有以下功能。
static func getFirstCharInName(strName: String) -> String {
let firstCharInName = String(strName.first)
return firstCharInName.trim()
}
我遇到了这个错误:
可选类型“字符?”的值 必须解包为“字符”类型的值
似乎是什么问题?
谢谢
解决方案
此错误意味着表达式具有尚未解包的可选值(该值可以是 nil),strName.first
返回一个可选值Character?
,但您的函数需要一个String
不是可选类型的返回类型。
所以,为了解决这个问题,你需要解开 optional value strName.first
,看起来你对optionals不熟悉,这里是你案例的代码(从两个选项中选择一个):
func getFirstCharInName(strName: String) -> String {
// option 1: force unwrap - can cause fatal error
return String(strName.first!)
// option 2: optional binding
if let firstCharInName = strName.first {
return String(firstCharInName)
} else {
// if the optional value is nil, return an empty string
return ""
}
}
PS。我不太了解trim()
您问题中的功能,但是如果您的意思是去掉空格之类的" "
,您可以这样做:
firstCharInName.trimmingCharacters(in: .whitespaces)
推荐阅读
- windows - 通过bat文件检查进程是否挂起
- java - 如何向 Google 的 Guice Provider 提供参数?
- sql - 用排名合并行
- c - 为什么编译器在这里坚持使用被调用者保存的寄存器?
- scala - 从 ZIO (Scala) 获取 ZManaged 的类型转换
- google-analytics - PII 数据作为自定义维度提供给 Google Analytics
- user-interface - 如何创建一个玩家必须猜测随机生成的 pin 的 Roblox 游戏?
- typescript - Vue / Express Cors 问题
- python - 从同一个类中获取两个移动对象进行交互(pygame)
- python - 如何在 Python 中使用 rdkit 确定任何分子的链烷烃 CH3、CH2 和 CH 基团的数量?