我在观察,这是一种我不完全理解的行为:
scala> val a = Iterator(1,2,3,4,5)
a: Iterator[Int] = non-empty iterator
scala> val b = a.dropWhile(_ < 3)
b: Iterator[Int] = non-empty iterator
scala> b.next
res9: Int = 3
scala> b.next
res10: Int = 4
scala> a.next
res11: Int = 5
看起来像:迭代器(1,2,3)
的迭代器部分a
被消耗,而(4,5)
被遗忘。由于必须对3
进行评估,因此必须使用dropWhile
来定义b
必须包含在b
中。迭代器3, (4,5)
是(4,5)
,其中a
是b
剩下的任何东西,完全相同的迭代器。我的理解是否正确?
鉴于上述情况,它看起来非常危险,a
的行为会因dropWhile
上的操作而改变。基本上我们有两个指向同一位置的对象。使用public void setLocation(String city){
spEditor=sp.edit();//// make sure sp also initialized
spEditor.putString("UserCity", city);
spEditor.commit();
}
喜欢这种糟糕的风格吗?
答案 0 :(得分:0)
是的: - )使用
dropWhile
喜欢这种糟糕的风格吗?