首页 > 解决方案 > 如何获取名称中的第一个字符

问题描述

我的班级有以下功能。

static func getFirstCharInName(strName: String) -> String {

   let firstCharInName = String(strName.first)

    return firstCharInName.trim()
}

我遇到了这个错误:

可选类型“字符?”的值 必须解包为“字符”类型的值

似乎是什么问题?

谢谢

标签: swift4

解决方案


此错误意味着表达式具有尚未解包的可选值(该值可以是 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)

推荐阅读