Swift中没有默认(T)吗?
发布时间:2020-12-14 05:34:10 所属栏目:百科 来源:网络整理
导读:我试图将斯威夫特书中的“矩阵”示例移植到通用. 这是我到目前为止 struct MatrixT { let rows: Int,columns: Int var grid: T[] init(rows: Int,columns: Int,repeatedValue: T) { self.rows = rows self.columns = columns grid = Array(count: rows * col
我试图将斯威夫特书中的“矩阵”示例移植到通用.
这是我到目前为止 struct Matrix<T> { let rows: Int,columns: Int var grid: T[] init(rows: Int,columns: Int,repeatedValue: T) { self.rows = rows self.columns = columns grid = Array(count: rows * columns,repeatedValue: repeatedValue) } func indexIsValidForRow(row: Int,column: Int) -> Bool { return row >= 0 && row < rows && column >= 0 && column < columns } subscript(row: Int,column: Int) -> T { get { assert(indexIsValidForRow(row,column: column),"Index out of range") return grid[(row * columns) + column] } set { assert(indexIsValidForRow(row,"Index out of range") grid[(row * columns) + column] = newValue } } } 注意,我不得不通过repeValue:T到构造函数. 在C#中,我会使用default(T),对于数字将为0,对于booleans为false,对于引用类型为null.我明白Swift不允许在非可选类型上使用,但如果传递一个显式参数是唯一的方法,或者如果我有一些等同于默认值(T)的话,我仍然很好奇.
没有. Swift强制您指定默认值,就像处理变量和字段一样. Swift有一个默认值的概念的唯一情况是可选类型,其中nil(Optional.None).
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |