이 코드 UniqueKeyGenerator가 있습니다. 생성 가능한 값을 예측 가능하게 만들고 싶기 때문에 점진적으로 추가 할 변수 번호가 있습니다. 어떻게 변경할 수 있습니까? 방금 대신 var
의 val
로 이것을 표현하려는 경우 당신이 Iterator
을 사용할 수, 값 대신 변수를 미리변경할 수있는 증분 값을 어떻게 변경할 수 있습니까?
3
A
답변
3
에서
object UniqueKeyGenerator {
var number = 0
def generate(suiteClass: Class[_]): String = {
number = number + 1
suiteClass.getCanonicalName + "." + this.number
}
}
많은 감사합니다.
object UniqueKeyGenerator {
val numbers = Iterator.iterate(0)(_ + 1)
def generate(suiteClass: Class[_]): String =
s"${suiteClass.getCanonicalName}.${numbers.next()}"
}
그렇지 않으면 내가 원하는 내용을 모르겠다. 당신이 생성하고자하는 ID가있는 경우를 제외하고
Seq(classOf[String], classOf[Int], classOf[String]).zipWithIndex
.map({ case (suiteClass, i) => s"${suiteClass.getCanonicalName}.$i" })
// res: List(java.lang.String.0, int.1, java.lang.String.2)
1
반복자에서 당신은 또한 폐쇄를 사용할 수 있습니다, 예를 들면 : 당신이 앞에 모든 입력이있는 경우
는, 당신은 다음처럼 작성할 수 있습니다 다음 자연수가 아니라 더 복잡한 표현의 결과입니다.
val nextId = {
var id = 0
() => {
id = id + 1 // change it to something more complex if you like
id
}
}
"id"는 여전히 변수이지만 바깥 쪽에서는 액세스 할 수 없습니다. 사용할 수있는 유일한 방법은 nextId를 호출하는 것입니다.
def generate(suiteClass: Class[_]): String = {
suiteClass.getCanonicalName + "." + nextId()
}
관련 문제
- 1. 어떻게 값을 변경할 수 있습니까?
- 2. 제출 버튼의 값을 어떻게 변경할 수 있습니까?
- 3. 어떻게 셀 값을 변경할 수 있습니까?
- 4. 어떻게 변경할 수 있습니까? 변경할 수 있습니다. 스칼라 매핑?
- 5. win32_computersystemproduct의 값을 변경할 수 있습니까?
- 6. ServerVariables의 값을 변경할 수 있습니까?
- 7. Environment.NewLine의 값을 변경할 수 있습니까?
- 8. xaml에서 값을 변경할 수 있습니까?
- 9. 어떻게 Resources.resw를 변경할 수 있습니까?
- 10. 어떻게 링크를 변경할 수 있습니까?
- 11. 값을 변경할 수있는 옵저버 이름?
- 12. 변경할 수있는 배열을 변경할 수있는 속성에 전달
- 13. 플러그인 값을 동적으로 변경할 수 있습니까?
- 14. NSString immutable은 값을 변경할 수 있습니까?
- 15. 변경할 수있는 참조를 사용하여 값을 이동할 수 있습니까?
- 16. 스크립트를 변경할 수 있습니까?
- 17. 함수 매개 변수의 값을 변경할 수 있습니까?
- 18. Storyboard에서 어떻게 레이블을 동적으로 변경할 수 있습니까?
- 19. document.location.protocol 값을 WinRT webview에서 변경할 수 있습니까?
- 20. 어떻게 이것을 자바의 문자열로 변경할 수 있습니까
- 21. 어떻게 든 변수를 변경할 수 있습니까?
- 22. ModelMetadataProviders를 변경할 수있는 기능
- 23. 일 수를 어떻게 변경할 수 있습니까?
- 24. 어떻게 Paperclip의 첨부 파일 경로 값을 변경할 수 있습니까?
- 25. 어떻게 오류 메시지를 변경할 수 있습니까?
- 26. 어떻게 scrollingActivity 제목의 크기를 변경할 수 있습니까?
- 27. MSMQ의 LogMgrFlushInterval 값을 변경할 수 있습니까?
- 28. 기존 쿠키의 값을 변경할 수 있습니까?
- 29. 휴대 기기의 GPS 값을 변경할 수 있습니까?
- 30. 순차적으로 오라클 시퀀스의 값을 변경할 수 있습니까?