스칼라를 스스로 가르치려고합니다. 그리고 나는 임의적으로 보이는 것에 갇혀 있습니다. 두 문자가 서로 같은 날씨를 비교하고 싶습니다.
진정한 예
예상대로 true를 반환합니다.
"(" == "("
"(".equals("(")
내가 확인하고 싶은 것
"(an exampl(e))".toList(0) // res : Char = (
왠지 거짓
이들은 거짓을 반환합니다
"(an exampl(e))".toList(0).equals("(")
"(an exampl(e))".toList(0) == "("
"(an exampl(e))".toList.head == "("
여기에 뭔가 빠진 것 같아요. 문자 값을 목록 포인터와 비교하고 있습니까? 그렇다면 내가 가리키는 항목의 값이 같은지 "("
어떻게 확인할 수 있습니까?
짧은 대답은 ")"가 아닌 ')'와 비교해야한다는 것입니다. ")"는 유형이 String
아닙니다 Char
.
REPL을 사용하면 쉽게 테스트 할 수 있습니다 (유형에주의).
scala> ')'
res0: Char = )
scala> ")"
res1: String = )
equals 메소드는 이와 비슷하게 정의 equals(obj: Any): Boolean
되어 있으므로 코드 컴파일은 인수로 전달하는 참조에 상관이 없습니다. 그러나 false
유형이 동일하지 않기 때문에 수표는 입니다.
그런데 나는 더 좋은 방법은 (없이이 같은 테스트를 작성하는 것입니다 생각 .toList
으로 .head
정의되어 StringOps
아니라)
scala> "(an exampl(e))".head == '('
res2: Boolean = true
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다