Swift 无法访问类变量
我有下面这门课Swift 无法访问类变量,swift,Swift,我有下面这门课 import Foundation class Tips { //Variables var totalBill: Float var tipPercent: Int var splitBy: Int init(billAmount: Float, tipPercentage: Int, splitByPeople: Int) { totalBill = billAmount tipPercent
import Foundation
class Tips
{
//Variables
var totalBill: Float
var tipPercent: Int
var splitBy: Int
init(billAmount: Float, tipPercentage: Int, splitByPeople: Int)
{
totalBill = billAmount
tipPercent = tipPercentage
splitBy = splitByPeople
}
class func calculateTip() -> Float
{
var grandTotal = totalBill + ((totalBill * tipPercent)/100)
return grandTotal/splitBy
}
}
在calculateTip()
函数中,我看到一个名为实例成员“totalBill”的错误不能用于类型“Tips”
如何修复此问题?在func calculateTip()之前,您应该删除class关键字: 变成
func calculateTip() -> Float
使用class关键字使函数保持静态,因此您无法访问类成员,因为该类未实例化
我建议在任何地方都使用Float:
class Tips
{
//Variables
var totalBill: Float
var tipPercent: Float
var splitBy: Float
init(billAmount: Float, tipPercentage: Int, splitByPeople: Int)
{
totalBill = billAmount
tipPercent = Float(tipPercentage) // <--convert
splitBy = Float(splitByPeople) // <--convert
}
class func calculateTip() -> Float
{
var grandTotal = totalBill + ((totalBill * tipPercent)/100)
return grandTotal/splitBy
}
}
课堂提示
{
//变数
var totalBill:浮动
var tipPercent:浮动
var splitBy:Float
初始化(billAmount:Float,TipperEntage:Int,splitByPeople:Int)
{
totalBill=billAmount
tipPercent=Float(tipPercentage)/在func calculateip()之前,您应该删除类关键字:
变成
func calculateTip() -> Float
使用class关键字使函数保持静态,因此您无法访问类成员,因为该类未实例化
我建议在任何地方都使用Float:
class Tips
{
//Variables
var totalBill: Float
var tipPercent: Float
var splitBy: Float
init(billAmount: Float, tipPercentage: Int, splitByPeople: Int)
{
totalBill = billAmount
tipPercent = Float(tipPercentage) // <--convert
splitBy = Float(splitByPeople) // <--convert
}
class func calculateTip() -> Float
{
var grandTotal = totalBill + ((totalBill * tipPercent)/100)
return grandTotal/splitBy
}
}
<代码>课程提示
{
//变数
var totalBill:浮动
var tipPercent:浮动
var splitBy:Float
初始化(billAmount:Float,TipperEntage:Int,splitByPeople:Int)
{
totalBill=billAmount
tipPercent=Float(tipPercentage)//谢谢,这就解决了问题。另外,在上面的函数中计算grandTotal时,我遇到了一个名为“二进制运算符*不能应用于'Float'和'Int'类型的操作数”的错误。如果我需要某种类型的转换,有什么想法吗?您需要使用相同的类型,将Int转换为Float。with:Float(variableName)啊..我明白了..这很有意义..谢谢:)或者,他可以将他的变量声明为static
,这取决于在特定实例上调用该方法是否有意义。谢谢,这修复了它。另外,我还收到了一个名为在上述函数中计算grandTotal时,二进制运算符*不能应用于“Float”和“Int”类型的操作数。如果我需要某种类型的转换,您有什么想法吗?您需要使用相同的类型,将Int转换为Float。with:Float(variableName)啊..我明白了..这很有意义..谢谢:)或者,他可以将他的变量声明为static
,这取决于在特定实例上调用该方法是否有意义。