我知道有一个问题具有相同的标题,但我认为这是一个不同的问题,因为我无法用提供的解决方案来解决它.相关问题是:二进制运算符'/'不能应用于两个(Int)操作数.我也看过应该是原版的问题.
但我得到这个错误只是尝试在UIColor函数内部使用变量:
工作
UIColor(red: 74/255, green: 24/255, blue: 141/255, alpha: 1)
Run Code Online (Sandbox Code Playgroud)
不行
var colorRGB = 74
UIColor(red: colorRGB/255, green: 24/255, blue: 141/255, alpha: 1)
Run Code Online (Sandbox Code Playgroud)
所以我无法理解为什么我的错误发生了.它抛出以下错误:
二进制运算符'/'不能应用于两个'int'操作数
我认为它会是相同的,因为在两种情况下都是相同的值,但我得到的是错误.我认为在第一个例子中还有两个int值,它不会抛出该错误.
如何在函数内部使用变量?
提前致谢!
该UIColor构造需要四个CGFloat参数.
UIColor(red: 74/255, green: 24/255, blue: 141/255, alpha: 1)
Run Code Online (Sandbox Code Playgroud)
编译因为CGFloat符合ExpressibleByIntegerLiteral
协议.从上下文中,编译器尝试创建
74/255一个CGFloat,并将所有数字解释为CGFloat
文字,并将/其解释为CGFloat除法运算符.
这不起作用
var colorRGB = 74
UIColor(red: colorRGB/255, green: 24/255, blue: 141/255, alpha: 1)
Run Code Online (Sandbox Code Playgroud)
74文字没有上下文,因此Int默认情况下将其视为文本.但没有合适的除法运算做colorRGB/255一个CGFloat.
您必须使用正确的类型显式定义变量:
var colorRGB: CGFloat = 74
UIColor(red: colorRGB/255, green: 24/255, blue: 141/255, alpha: 1)
Run Code Online (Sandbox Code Playgroud)
备注:这也将编译:
var colorRGB = 74
UIColor(red: CGFloat(colorRGB/255), green: 24/255, blue: 141/255, alpha: 1)
Run Code Online (Sandbox Code Playgroud)
但随后colorRGB/255成为整数除法并计算为零,比较Strange Swift数字类型转换.
| 归档时间: |
|
| 查看次数: |
1877 次 |
| 最近记录: |