제1장 Strings(4):다른 종류의 변 수 를 문자열 로 변환 합 니 다.
변 수 를 문자열 로 바 꾸 려 면 어떻게 해 야 합 니까?
Solution
Scala 2.10 부터 암시 적 전환 을 사용 할 수 있 습 니 다.이것 은 어느 정도 Perl,PHP,Ruby 와 유사 합 니 다.
스칼라 의 문자열 삽입 값 을 사용 하려 면 먼저 변 수 를 포함 하 는 문자열 앞 에 알파벳 s 를 추가 한 다음 문자열 의 변수 앞 에$문 자 를 추가 해 야 합 니 다.우 리 는 println 방법 을 사용 하여 테스트 합 니 다.
scala> val age = 33
age: Int = 33
scala> val wigth = 200.0
wigth: Double = 200.0
scala> val weight = 200.0
weight: Double = 200.0
scala> println(s"$name is $age years old, and wights $weight pounds")
Fred is 33 years old, and wights 200.0 pounds
스칼라 공식 문서 에서 문자열 삽입 값 에 대한 설명 에 따 르 면 s 접두사 가 있 는 문자열 을 사용 하려 고 할 때 문자열 처리 글자 의 양 을 만 들 었 습 니 다.이 예 에 서 는's 문자열 삽입 값'을 사용 하여 변 수 를 문자열 에 삽입 할 수 있 습 니 다.이 위 치 는 변수 값 으로 대 체 됩 니 다.s 를 모든 문자열 의 글자 크기 에 추가 하기 전에 문자열 에 변 수 를 직접 사용 할 수 있 습 니 다.
Using expressions in string literals
문자열 에 변 수 를 추가 하 는 것 외 에 표현 식 도 사용 할 수 있 습 니 다.
아래 의 이 예 에서 우 리 는 age 에 1 을 더 한 후에 인쇄 합 니 다.
scala> println(s"$age next year is ${age + 1}")
33 next year is 34
==문자열 에 삽 입 된 표현 식 에서 도 사용 할 수 있 습 니 다.
scala> println(s"Your age is 33:${33 == age}")
Your age is 33:true
${}을 사용 하여 문자열 내 장 된 변수 에 클래스 필드 를 인쇄 합 니 다:
scala> case class Student(name:String, age:Int)
defined class Student
scala> val stu = Student("ming", 18)
stu: Student = Student(ming,18)
scala> println(s"${stu.name}'s age is ${stu.age}")
ming's age is 18
${}을 사용 하지 않 으 면 다음 효 과 를 볼 수 있 습 니 다:
scala> println(s"$stu.name's age is $stu.age")
Student(ming,18).name's age is Student(ming,18).age
이 형식 은$stu.name 이 하나의 전체 가 아니 라$stu 와.name 두 부분 으로 나 뉘 어 인쇄 된 것 을 발견 할 수 있 습 니 다.
s is a method
s 를 문자열 의 글자 크기 앞 에 놓 는 것 은 사실상 하나의 방법 이다.문자열 에 변수 값 만 넣 는 것 처럼 보이 지만 최소한 두 가지 좋 은 점 이 있 습 니 다.
이러한 장점 을 볼 수 있 도록 다른 플러그 인 함 수 를 보 겠 습 니 다.
The f string interpolator (printf style formatting)
솔 루 션 의 예 에서 weight 는 200.0 으로 인쇄 되 었 습 니 다.이것 은 아무런 문제 가 없 지만,소수점 뒤의 더 많은 자릿수 를 유지 하거나,아예 소수점 뒤의 숫자 를 없 애 려 면 어떻게 해 야 합 니까?
그러면 우 리 는'f 문자열 삽입 함수'를 직접 사용 할 수 있 습 니 다.printf 방식 을 사용 하면 문자열 의 변수 인쇄 형식 을 지정 할 수 있 습 니 다.다음은 weight 인쇄 를 지정 하여 두 개의 소 수 를 유지 합 니 다.
scala> println(f"$name is $age years old, and weighs $weight%.2f pounds.")
Fred is 33 years old, and weighs 200.00 pounds.
scala> println(f"$name is $age years old, and weighs $weight pounds.")
Fred is 33 years old, and weighs 200.0 pounds.
정수 부분 만 유지:
scala> println(f"$name is #age years old, and weight $weight%.0f pounds")
Fred is #age years old, and weight 200 pounds
f 문자열 삽입 방안 을 사용 하려 면 다음 두 단계 로 진행 해 야 합 니 다.
s 와 f 함 수 를 보충 하기 위해 Scala 2.10 은 다른 플러그 함수 raw 를 포함 합 니 다.Raw 플러그 인 함 수 는 문자열 글자 의 전의 문자 가 작용 하 는 것 을 방지 할 수 있 습 니 다.다음은 raw 가 어떻게 일 하 는 지 살 펴 보 겠 습 니 다.
scala> s"foo
bar"
res15: String =
foo
bar
scala> raw"foo
bar"
res16: String = foo
bar
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JDK 11을 사용하여 NixOS에서 Play Framework 실행저는 NixOS로 전환하고 있으며 이에 대해 다소 기대하고 있습니다. 오늘 저는 sbt 설치 및 JDK 11로 다운그레이드를 포함하여 Play Framework 환경을 손쉽게 설치하고 실행할 수 있게 된 것을 축하합...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.