小编rdk*_*rdk的帖子

swift switch语句案例有不同和共享的事情要做

我有这样的代码

switch thing {
  case thisThing:
     do thing #1
     do thing #2
  case thatThing:
     do thing #2
     do thing #3
  case anotherThing:
     do thing #4
  default:
     default
}
Run Code Online (Sandbox Code Playgroud)

因此,每种情况都只有它能做到的事情.有些案例也与一个或多个其他案件做同样的事情.

如果我不想要任何重复的代码,有没有办法实现这一目标?

或者,有没有一个更有效的方法来做这个没有开关语句?我的意思是,我可能,例如,使用if语句,但像switch语句,我不能想办法来完成我想要的东西,而无需使用重复的代码.

此外,这个例子可能比上面更清楚

myFavoriteNumbers = []
myLeastFavoriteNumbers = []

switch myNumber {
case 1:
  print("my number is number 1") // do this only for case 1
  myFavoriteNumbers += [1] // do this for case 1 and case 2
case 2:
  print("this is number 2") // do this only for case 2 …
Run Code Online (Sandbox Code Playgroud)

switch-statement control-flow ios swift

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

Groupby 和基于特定行值的计算

我有看起来像这样的数据:

d = {'id' : [1, 1, 1, 2, 2, 2],
     'levels': ['low', 'perfect', 'high', 'low', 'perfect', 'high'],
     'value': [1, 10, 13, 2, 10, 13]}

df = pd.DataFrame(d, columns=['id', 'levels', 'value'])
df = df.groupby(['id','levels'])[['value']].mean()
Run Code Online (Sandbox Code Playgroud)

对于每一个[ID,等级],我想找到的区别value行和value中的perfect一行。它看起来像这样:

id | levels | value | penalty
1  | high   | 13    | 3
   | low    | 1     | 9
   | perfect| 10    | 0
2  | high   | 13    | 3
   | low    | 2     | 8
   | …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas pandas-groupby

4
推荐指数
2
解决办法
79
查看次数

Textview scrollRangeToVisible 使范围转到顶部

我正在尝试滚动到位于 UITextView 的属性文本中的特定子字符串。滚动完成后,我希望子字符串位于可见文本视图文本的顶部。但是,当 textView.selectedRange 位于子字符串范围下方时,我只能让子字符串到达​​顶部。无论滚动范围以前位于何处,如何才能使子字符串始终显示在顶部?

这是我当前的代码

   let text =  // a long NSAttributedString
   let substring = "put me at the top!"
   textView.attributedText = text

   func scrollToSubstring() {
      let str = text.string as NSString

      let range = str.rangeOfString(substring, options: .RegularExpressionSearch, range: NSMakeRange(0, str.length), locale: nil)

      textView.scrollRangeToVisible(range)
      // HOW CAN I MAKE IT SO range ALWAYS APPEARS AT THE TOP?
   }
Run Code Online (Sandbox Code Playgroud)

scrollview textview ios nsrange swift

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