【问题标题】:function with appending not working in swift附加功能无法快速运行
【发布时间】:2015-02-18 18:41:42
【问题描述】:

我正在尝试编写一个函数来将内容附加到一个值数组然后将它们打印出来,但是当我在调用我的函数后打印出来时它返回 __lldb_expr_444.taste?! 这是我的代码:

  // Playground - noun: a place where people can play

import UIKit

struct taste {
var TheName = "blankName"

var TheDesc = "blankDesc"
}




var data = [taste]()


func addFruit(name:String,desc:String) {
data.append(taste(TheName: name as String, TheDesc: desc as String))


}

addFruit("cherry", "sweet")

println(data)

我做错了什么?

【问题讨论】:

  • 你不应该为你的变量命名以大写字母开头

标签: ios swift append


【解决方案1】:

您正试图访问函数中的数据,但它已在函数外部声明。

解决这个问题的一种方法是创建一个类,将数组作为类变量,并将 addFruit 作为类的函数。

否则,您可以将数组作为 addFruit 函数的参数传递,以便能够在函数内部对其进行修改。为了打印您的数组,您可以对其进行迭代。

var data:[taste]

func addFruit(name:String, desc:String, inout fruitArray:taste) {
    fruitArray.append(taste(TheName: name as String, TheDesc: desc as String))
}

addFruit("cherry", "sweet", &data)

for item in data{
    println(item)
}

【讨论】:

    【解决方案2】:

    您需要采用 Printable 协议并实现返回文本结构表示的描述计算变量。

    struct taste: Printable {
    
      var TheName = "blankName"
      var TheDesc = "blankDesc"
    
      var description: String {
        return "TheName: \(TheName); TheDesc: \(TheDesc)"
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 2017-10-02
      • 1970-01-01
      • 1970-01-01
      • 2018-05-27
      • 2017-04-02
      • 1970-01-01
      相关资源
      最近更新 更多