小编dmi*_*747的帖子

函数式编程风格的过滤列表

我们有一个带有BEGIN和END标记的字符串列表作为此列表的一部分.我们可以在函数式编程风格中过滤出BEGIN-END之间的元素吗?我只是在scala中使用这种常规(标记)方法出来了.

val list1 =
  """992
  1010
  1005
  1112
  BEGIN
  1086
  1244
  1107
  1121
  END
  1223
  1312
  1319
  1306
  1469""".lines.toList

var flag = false
val filteredList = list1.filter{
  def f(x: String): Boolean = {
    if (x.contains("BEGIN")) {
      flag = true;
      return false
    } else if (x.contains("END")) {
      flag = false
    }
    flag
  }
  f
}
Run Code Online (Sandbox Code Playgroud)

这有可能避免定义标志变量吗?他们如何用纯函数式语言解决这个问题?

functional-programming scala

3
推荐指数
1
解决办法
3126
查看次数

NSString内的宏扩展

如何在NSString中扩展宏?我有以下代码:

#define MAX_MESSAGE_LENGTH 2000

NSString *alertTxt = @"Your message exceeded MAX_MESSAGE_LENGTH characters";
Run Code Online (Sandbox Code Playgroud)

正如您可以预测的那样,"我的消息超出了MAX_MESSAGE_LENGTH个字符",而不是"您的消息超过2000个字符".有没有办法让我的MAX_MESSAGE_LENGTH扩展到字符串中?

macros objective-c

0
推荐指数
1
解决办法
1510
查看次数