Swift初始化调用方法提示Result of call to 'greet()' is unused如何解决
问题原因
这个警告触发的原因是greet()方法定义了String类型的返回值,但你在init初始化方法中调用它时没有接收、使用返回的字符串,编译器会主动提示你这个返回结果被无意义丢弃了。
另外你提供的代码还存在一处拼写错误:声明变量时写的是greeeting(多了一个字母e),但return时用的是greeting,运行时会直接报变量未定义的错误,需要先修正这个拼写问题。
解决方法
有两种常用的解决方案,按需选择即可:
- 方案1:显式忽略返回值
如果你需要保留greet()的返回值设计,只是初始化阶段不需要用到返回结果,可以用_显式告知编译器你是主动丢弃返回值,修改初始化方法的调用逻辑即可:init(name:String) { self.name = name // 用_接收返回值,代表不需要使用该结果 _ = self.greet() } - 方案2:修改方法返回值类型
如果greet()的核心作用就是打印问候信息,本身不需要对外返回字符串,可以直接去掉方法的返回值声明,同时删除多余的return语句:
改完之后在// 去掉-> String,代表方法无返回值 func greet() { let greeting = "the user's name is \(name)." print(greeting) }init里直接调用self.greet()就不会触发任何警告。
内容的提问来源于stack exchange,提问作者forginSpell
相关产品推荐
相关产品推荐

