Obj C Blocks中的澄清

Fut*_*tur 4 objective-c ios objective-c-blocks

为什么这是一个错误?

float (^isFloat)(float) = ^(float d)
{
    return d*2.0;
};
Run Code Online (Sandbox Code Playgroud)

在某个时候,以下是没有错误,

float (^isFloat)(float) = ^(float d)
{
    return d;
};
Run Code Online (Sandbox Code Playgroud)

请帮我理解.

Jos*_*erg 9

因为第一个块上的返回类型不正确.

您定义了块以返回a float,但是您将a float乘以a double.如果你把它改成d * 2.0f一切应该工作得很好.

  • 要添加:除非另有说明,否则浮点常量是双精度数. (5认同)