注册 登录
主题 : swift算法求教
级别: 新手上路
UID: 137363
精华: 0
发帖: 41
可可豆: 68 CB
威望: 68 点
在线时间: 281(时)
注册时间: 2012-04-18
最后登录: 2017-12-07
0 楼:  发表于: 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
发帖: 41
可可豆: 68 CB
威望: 68 点
在线时间: 281(时)
注册时间: 2012-04-18
最后登录: 2017-12-07
1 楼:  发表于: 2017-03-16 10:21    发自: Web Page

级别: 新手上路
状态: 连续签到 - [26天]
UID: 525391
精华: 0
发帖: 37
可可豆: 165 CB
威望: 116 点
在线时间: 190(时)
注册时间: 2015-11-22
最后登录: 2017-12-11
2 楼:  发表于: 2017-03-21 16:29    发自: Web Page
回 楼主(520) 的帖子

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

真相帝出现!牛掰~
级别: 骑士
UID: 550365
精华: 0
发帖: 275
可可豆: 375 CB
威望: 365 点
在线时间: 753(时)
注册时间: 2016-03-15
最后登录: 2017-12-10
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
发帖: 275
可可豆: 375 CB
威望: 365 点
在线时间: 753(时)
注册时间: 2016-03-15
最后登录: 2017-12-10
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
发帖: 37
可可豆: 165 CB
威望: 116 点
在线时间: 190(时)
注册时间: 2015-11-22
最后登录: 2017-12-11
9 楼:  发表于: 2017-03-31 11:19    发自: Web Page
回 7楼(u_r_sb) 的帖子
谢谢。。。学习中。。。
描述
快速回复

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

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

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