注册 登录
主题 : swift算法求教
级别: 新手上路
UID: 137363
精华: 0
发帖: 19
可可豆: 37 CB
威望: 37 点
在线时间: 204(时)
注册时间: 2012-04-18
最后登录: 2017-08-21
楼主 : 发表于: 2017-03-16 10:00    发自: Web Page

swift算法求教   

我写了一个extension,求Double的绝对值,但是为啥结果是负数呢?


extension Double {
    func absoluteValue() -> Double {
        return abs(self)
    }
}
let sdf = -2.56.absoluteValue()
print(sdf)

关键词: swift
级别: 新手上路
UID: 137363
精华: 0
发帖: 19
可可豆: 37 CB
威望: 37 点
在线时间: 204(时)
注册时间: 2012-04-18
最后登录: 2017-08-21
沙发 : 发表于: 2017-03-16 10:21    发自: Web Page

级别: 新手上路
状态: 未签到 - [26天]
UID: 525391
精华: 0
发帖: 33
可可豆: 161 CB
威望: 112 点
在线时间: 184(时)
注册时间: 2015-11-22
最后登录: 2017-08-15
板凳 : 发表于: 2017-03-21 16:29    发自: Web Page
回 楼主(520) 的帖子

-2.56.absoluteValue() 是2.56先取绝对值,再取负  
应该加括号:(-2.56).absoluteValue()
级别: 新手上路
UID: 137363
精华: 0
发帖: 19
可可豆: 37 CB
威望: 37 点
在线时间: 204(时)
注册时间: 2012-04-18
最后登录: 2017-08-21
3 楼:  发表于: 2017-03-22 09:52    发自: Web Page
回 2楼(dte2mdj) 的帖子
这么多天以来,你是第一个知道答案的
级别: 新手上路
状态: 未签到 - [26天]
UID: 525391
精华: 0
发帖: 33
可可豆: 161 CB
威望: 112 点
在线时间: 184(时)
注册时间: 2015-11-22
最后登录: 2017-08-15
4 楼:  发表于: 2017-03-24 10:46    发自: Web Page
回 3楼(520) 的帖子
感觉这个论坛活跃度不是很高啊。我也是在学习Swift
级别: 新手上路
UID: 137363
精华: 0
发帖: 19
可可豆: 37 CB
威望: 37 点
在线时间: 204(时)
注册时间: 2012-04-18
最后登录: 2017-08-21
5 楼:  发表于: 2017-03-24 12:38    发自: Web Page
回 4楼(dte2mdj) 的帖子
同感
级别: 骑士
UID: 550365
精华: 0
发帖: 253
可可豆: 344 CB
威望: 334 点
在线时间: 619(时)
注册时间: 2016-03-15
最后登录: 2017-08-21
6 楼:  发表于: 2017-03-26 15:08    发自: Web Page
回 2楼(dte2mdj) 的帖子
      

真相帝出现!牛掰~
级别: 骑士
UID: 550365
精华: 0
发帖: 253
可可豆: 344 CB
威望: 334 点
在线时间: 619(时)
注册时间: 2016-03-15
最后登录: 2017-08-21
7 楼:  发表于: 2017-03-26 15:10    发自: Web Page
回 4楼(dte2mdj) 的帖子
      

因为Swift相对来说比较简单,没啥好讨论的……官网的《The Swift Programming Language》加上zenny_chen版主的讲义即可解决大部分问题了:
http://www.cocoachina.com/bbs/read.php?tid-1707632.html

http://www.cocoachina.com/bbs/read.php?tid-1713839.html
级别: 骑士
UID: 550365
精华: 0
发帖: 253
可可豆: 344 CB
威望: 334 点
在线时间: 619(时)
注册时间: 2016-03-15
最后登录: 2017-08-21
8 楼:  发表于: 2017-03-26 15:21    发自: Web Page
回 3楼(520) 的帖子
      

这其实也充分说明了点语法的各种弊病,Objective-C的 [  ] 消息发送机制尽管看上去有些怪异,但能解决许多很坑的问题,比如这里你所举的例子就是一个典型。

看看ObjC的实现:

@interface NSNumber(MY_EXPAND)

- (double)absoluteValue;

@end

@implementation NSNumber(MY_EXPAND)

- (double)absoluteValue
{
    return fabs(self.doubleValue);
}

@end

void CFunc(int a)
{
    NSLog(@"The value is: %f\n", [@-1.25 absoluteValue]);
}



很直观~
级别: 新手上路
状态: 未签到 - [26天]
UID: 525391
精华: 0
发帖: 33
可可豆: 161 CB
威望: 112 点
在线时间: 184(时)
注册时间: 2015-11-22
最后登录: 2017-08-15
9 楼:  发表于: 2017-03-31 11:19    发自: Web Page
回 7楼(u_r_sb) 的帖子
谢谢。。。学习中。。。
描述
快速回复

关注本帖(如果有新回复会站内信通知您)

验证问题:
苹果公司现任CEO是谁?2字 正确答案:库克

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部