http://tieba.baidu.com/p/3546280977
非常感激,截图如下,可能非常简单,也可能是非常弱智的问题,但还是希望有大神能鄙视的帮我解答一下!新手!
(0)
- 1楼
- 2015-01-24 12:05
- ann2bad_lego
- 知名人士
10
手机党,看不清
收起回复
- 2楼
- 2015-01-24 13:35
-
PCatZJ: 是看不清还是没有
2015-1-24 14:31回复
ann2bad_lego: 回复 PCatZJ :没有啥2015-1-24 14:45回复
PCatZJ: 回复 ann2bad_lego :没有图片啊!应该是看不清,那等等,我把文字贴楼下!2015-1-24 14:48回复
ann2bad_lego: 回复 PCatZJ :把错误信息也贴一下2015-1-24 14:54回复
PCatZJ: 回复 ann2bad_lego :错误信息在3楼,我再贴程序,其实是一个非常简单的闭包,我几乎是照着书上抄的,还是有错误!2015-1-24 14:56回复
- 我也说一句
- PCatZJ
- 高级粉丝
3
提示的两个错误分别是:
cannot invoke ‘sort‘ with an argument list of type‘([String],(String, String) -> Bool)‘
和
invalid character in source file
- 3楼
- 2015-01-24 14:54
- PCatZJ
- 高级粉丝
3
这是源程序:
import Foundation
let arr = ["hello", "world", "hello2", "233","2world"]
func compare(s1: String, s2: String) -> Bool {
return s1 > s2
}
var arr2 = sort(arr, {(s1: String, s2: String) -> Bool in return s1 > s2})
收起回复
- 4楼
- 2015-01-24 15:04
-
PCatZJ: 不对,最后一句是var arr2 = sort(arr, compare),上面的最后一句是不需要那个compare函数,但是也不行,应该是类型转换哪个地方的问题
2015-1-24 15:06回复
y5254y: 回复 PCatZJ :跳到8楼看看我说的,你就明白了2015-1-24 21:01回复
- 我也说一句
- ann2bad_lego
- 知名人士
10
sort没有接受这两个类型参数的重载函数。。。你是要用sorted吧?
收起回复
- 5楼
- 2015-01-24 15:06
-
PCatZJ: 是么,但是书上就是这么写的啊,难道被坑了?我试试
2015-1-24 15:13回复
ann2bad_lego: 回复 PCatZJ :如果要用sort,把之前声明arr的let换成var2015-1-24 15:21回复
PCatZJ: 回复 PCatZJ :果然行,这书竟然是坑的!那我要查这个api文档的话有没有什么推荐,苹果官网么2015-1-24 15:23回复
PCatZJ: 回复 ann2bad_lego :是var啊2015-1-24 15:24回复
ann2bad_lego: 回复 PCatZJ :代码看7楼2015-1-24 15:27回复
- 我也说一句
还有1条回复,点击查看
- ann2bad_lego
- 知名人士
10
xcode的help里就有,也可以按住command键,然后哪里不会点哪里
- 6楼
- 2015-01-24 15:25
世界那么大,我想去看看,哪里凉快选哪里! 立即查看
- 推荐 来自 贴吧游戏
- ann2bad_lego
- 知名人士
10
var arr = ["hello", "world", "hello2", "233","2world"]
func compare(s1: String, s2: String) -> Bool {
return s1 > s2
}
sort(&arr, {(s1: String, s2: String) -> Bool in return s1 > s2})
- 7楼
- 2015-01-24 15:26
- y5254y
- 核心会员
7
文档翻译的有问题,最好对比着英文的看看,特别是代码部分。
英文文档里用的不是sort是sorted。这两个函数功能一样,用法不一样,sort没有返回值,第一个参数是inout的,所以第一个参数同时就是返回值;sorted是将排序好的放在了返回值。
你如果用sorted的话,就直接把你代码里的sort换成sorted就可以了。
如果想用sort的话,就是楼上说的那样。
收起回复
- 8楼
- 2015-01-24 21:00
-
PCatZJ: 谢谢,受教!
2015-1-24 21:04回复
ann2bad_lego: 回复 PCatZJ :再对层主补充一点,用sort排序是将排好的结果放在原有的数组里,所以数组不能用let声明为常量。而sorted是将排好的结果作为返回值,你可以用一个新的变量或常量来接收,这时候原来的数组是变量或者常量就无所谓了2015-1-24 22:50回复
PCatZJ: 回复 ann2bad_lego :受教!!!感激不尽!!!2015-1-24 22:53回复
- 我也说一句
我在贴吧
0[获取]
推荐应用