小编Enr*_*tyo的帖子

在Scala中编写Fibonacci函数的最快方法是什么?

我已经从Scala中看到了Scala中Fibonacci函数的一些实现,从一个非常简单的实现更复杂的函数.

我不完全确定哪一个是最快的.我倾向于使用memoization的那些更快,但我想知道为什么Scala没有本机的memoization.

任何人都可以启发我最好,最快(最干净)的方法来编写斐波纳契函数吗?

recursion scala fibonacci

7
推荐指数
4
解决办法
1万
查看次数

如何获取当前在Xcode中运行的目标的名称?

我有一个包含多个目标的Xcode项目.让我们说目标名称是AppFreeVersionAppPaidVersion.它们共享相同的代码库,但我想实现一些仅适用于其中一个目标的逻辑.

如果不修改我的方案或构建设置,有没有办法获取我当前目标名称的字符串?这个问题中给出的解决方案要求我在构建设置中传递一个环境变量,我不想这样做.

xcode build ios

7
推荐指数
2
解决办法
6308
查看次数

在scala中更改列表类型的最佳方法

我在scala中有一个名为l:List [AType]的列表,我想将其更改为list [String].

这可能听起来像一个非常肮脏,低效的方法,但我不太确定这样做的最好方法.我的代码是:

var result = new Array[String]("a","b")
l foreach { case a => result = result :+ (a.toString().toUpperCase()); }
result toList
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是我的错误所在,因为它没有给我任何东西,即使我在循环中放置一个print语句也不打印任何东西.

所以我决定将其更改为更为迫切的方式:

for(i <- 0 to l.length) {
    result.update(i, l(i).toString)
}
Run Code Online (Sandbox Code Playgroud)

这次我看到在循环中打印时我想看到的东西,但最后程序因IndexOutOfBound错误而崩溃.

有没有更有效和更好的方法来做到这一点?

谢谢!

arrays functional-programming scala copy list

6
推荐指数
2
解决办法
2777
查看次数

修改函数内的多个列表并在Scala中返回它

我在scala中有一个类型为[T]和[B]的列表,其对象e为E类型.

我想创建一个接受这三个参数的函数:

def doSomething(t : List[T], b List[B], e : E) {
 ... }
Run Code Online (Sandbox Code Playgroud)

但是我意识到List是不可变的,传递给函数的任何东西都被认为是val(不是var).但我需要修改t和b并将修改返回给函数的调用者.有谁知道怎么做?

我无法将列表更改为数组...因为我一直在使用它,文件太大了..

functional-programming scala list

6
推荐指数
1
解决办法
1206
查看次数

在Letterpress iOS游戏中生成字母的明智算法是什么?

我最近一直在玩Letterpress.

游戏的目的是通过在棋盘上用字母制作单词来尽可能多地获得蓝色瓷砖.当你弹奏你的单词时,除非字母被红色瓷砖包围,否则组成单词的字母将变为蓝色.

常规的Letterpress板看起来像这样:

我意识到棋盘上的字母必须用某种规则生成,否则用一些棋盘玩游戏真的很难.我只能想到必须有多个元音的规则.我想知道是否还有其他规则.

另外,我想知道这是否与生成Boggle骰子类似.

algorithm

6
推荐指数
1
解决办法
1166
查看次数

didRangeBeacon在没有发现任何信标的情况下进行了调用

我注册了我自己的位置经理来监控和范围几个信标:

[self.locationManager startMonitoringForRegion:region];
[self.locationManager startRangingBeaconsInRegion:region];
Run Code Online (Sandbox Code Playgroud)

我的理解是,当找到一个或多个信标时,会调用此委托方法:

- (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
Run Code Online (Sandbox Code Playgroud)

当我打开我的信标时,确实调用了这个委托方法,但是信标数组是空的.我的灯塔没有列在那个数组中有什么理由吗?

这是一个截图来说明这种情况:

在此输入图像描述


其他注意事项:

  • 我使用MacBeacon传输我的信标信号.我稍后会尝试使用真正的灯塔,但MacBeacon在iOS 7中一直很适合我.
  • 我尝试推迟测距,直到我得到didEnterRegion:didDetermineState:被叫,但这仍然导致相同的事情.
  • 我已经要求我的位置经理提供位置许可:[self.locationManager requestWhenInUseAuthorization];.
  • 我有一个非常相似的代码在Xcode 5/iOS 7 SDK中编译得很好.这是特定的Xcode 6/iOS 8行为吗?
  • NSLocationWhenInUseUsageDescription在我的plist中添加了键.

core-location cllocationmanager ios ibeacon ios8

6
推荐指数
1
解决办法
2397
查看次数

在Swift模式匹配元组时如何解包Optional?

在Swift中,有一个if let用于解包选项的常见模式:

if let value = optional {
    print("value is now unwrapped: \(value)")
}
Run Code Online (Sandbox Code Playgroud)

我目前正在进行这种模式匹配,但在切换情况下使用元组,其中两个参数都是可选项:

//url is optional here
switch (year, url) {
    case (1990...2015, let unwrappedUrl):
        print("Current year is \(year), go to: \(unwrappedUrl)")
}       
Run Code Online (Sandbox Code Playgroud)

但是,这打印:

"Current year is 2000, go to Optional(www.google.com)"
Run Code Online (Sandbox Code Playgroud)

我有没有办法解开我的可选和模式匹配,只有它不是零?目前我的解决方法是:

switch (year, url) {
    case (1990...2015, let unwrappedUrl) where unwrappedUrl != nil:
        print("Current year is \(year), go to: \(unwrappedUrl!)")
}       
Run Code Online (Sandbox Code Playgroud)

pattern-matching optional ios swift

6
推荐指数
1
解决办法
1074
查看次数

preferredLocalization和preferredLanguage有什么区别?

[NSLocale preferredLanguages]根据文件定义:

用户的语言首选项顺序为NSString对象数组,每个对象都是一个规范化的IETF BCP 47语言标识符.

定义[[NSBundle mainBundle] preferredLocalizations]:

NSString对象的数组,每个对象标识接收器包中的本地化.语言按首选顺序排列.

我真的没有得到什么区别.应该使用哪一个?

cocoa cocoa-touch objective-c ios

5
推荐指数
1
解决办法
1704
查看次数

在iOS 7中隐藏导航栏时,如何更改状态栏的颜色?

我知道如何通过执行以下操作来更改导航栏(和状态栏)的颜色:

self.navigationController.navigationBar.barTintColor = [UIColor redColor];
Run Code Online (Sandbox Code Playgroud)

但是当我隐藏导航栏时,状态栏颜色将恢复为透明色.

即使导航栏被隐藏,如何使状态栏颜色与barTintColor保持一致?

uikit ios ios7 ios7-statusbar

5
推荐指数
3
解决办法
3927
查看次数

故事板中的边距是多少,为什么iPhone 6 plus的侧边距不同于其他iPhone?

在Xcode 6中的视图中创建约束时,我注意到这个" 约束到边距 "框,默认情况下勾选:

在此输入图像描述

保持这个框被勾选的结果是我的应用程序将在除iPhone 6 Plus之外的所有iPhone上正常运行,其中我将在视图的左侧和右侧具有一些边距:

iPhone 6 iPhone 6+

我试着查看Apple的文档,但可能不够难.Xcode 6及以上版本的保证金是多少?为什么边距仅在侧面而不在顶部/底部?为什么只有iPhone 6 Plus有此保证金?为什么不用iPhone 6等?这些边距是否记录在某处?

iphone storyboard xcode6 iphone-6-plus

5
推荐指数
1
解决办法
694
查看次数