函数在 Swift 2 中不起作用。(已定义变量的未解析标识符)
Function not working in Swift 2. (Unresolved identifier for defined variable)
我正在努力学习 Swift 2 来自 Python 的背景。开始制作一个非常简单的函数来计算 G 和 C。我在 var length: Float = Float(SEQ.characters.count)
行收到 Use of unresolved identifier 'SEQ'
我做错了什么?肯定是在函数开头定义的?
尝试了以下帖子:
Swift - Use of unresolved identifier
func GC(input_seq: String) -> Float {
let SEQ = input_seq.uppercaseString
var counter = 0.0
for nt in SEQ.characters {
if (nt == "G") {
var counter = counter + 1
}
if (nt == "C") {
var counter = counter + 1
}
}
}
var length: Float = Float(SEQ.characters.count)
return counter/length
}
let query_seq = "ATGGGGCTTTTGA"
GC(query_seq)
你做错了几件事。
- 您正在创建一个 Double 计数器(不是您可能想要的 Float):
var counter = 0.0
你真的需要它作为一个整数,因为它是一个计数器。您可以稍后将其转换为 Float。 var counter = 0
将创建一个 Int
变量
您正在 if 块中创建第二个和第三个局部变量:
if (nt == "G") {
var counter = counter + 1
}
我认为您不了解基础知识,从头开始阅读 Swift 这本书可能对您有益。
- 这确实是一个改进 - 您可以使用简写:
counter = counter + 1
到 counter += 1
甚至 counter++
这是您的代码的工作版本:
func GC(input_seq: String) -> Float {
let SEQ = input_seq.uppercaseString
var counter = 0
for nt in SEQ.characters {
if (nt == "G") {
counter++
}
if (nt == "C") {
counter++
}
}
return Float(counter)/Float(SEQ.characters.count)
}
let query_seq = "ATGGGGCTTTTGA"
GC(query_seq)
希望对您有所帮助。
我正在努力学习 Swift 2 来自 Python 的背景。开始制作一个非常简单的函数来计算 G 和 C。我在 var length: Float = Float(SEQ.characters.count)
Use of unresolved identifier 'SEQ'
我做错了什么?肯定是在函数开头定义的?
尝试了以下帖子:
Swift - Use of unresolved identifier
func GC(input_seq: String) -> Float {
let SEQ = input_seq.uppercaseString
var counter = 0.0
for nt in SEQ.characters {
if (nt == "G") {
var counter = counter + 1
}
if (nt == "C") {
var counter = counter + 1
}
}
}
var length: Float = Float(SEQ.characters.count)
return counter/length
}
let query_seq = "ATGGGGCTTTTGA"
GC(query_seq)
你做错了几件事。
- 您正在创建一个 Double 计数器(不是您可能想要的 Float):
var counter = 0.0
你真的需要它作为一个整数,因为它是一个计数器。您可以稍后将其转换为 Float。 var counter = 0
将创建一个 Int
变量
您正在 if 块中创建第二个和第三个局部变量:
if (nt == "G") { var counter = counter + 1 }
我认为您不了解基础知识,从头开始阅读 Swift 这本书可能对您有益。
- 这确实是一个改进 - 您可以使用简写:
counter = counter + 1
到 counter += 1
甚至 counter++
这是您的代码的工作版本:
func GC(input_seq: String) -> Float {
let SEQ = input_seq.uppercaseString
var counter = 0
for nt in SEQ.characters {
if (nt == "G") {
counter++
}
if (nt == "C") {
counter++
}
}
return Float(counter)/Float(SEQ.characters.count)
}
let query_seq = "ATGGGGCTTTTGA"
GC(query_seq)
希望对您有所帮助。