scala 프로 그래 밍 학습 노트 (1) 변수 정의 함수 정의
5823 단어 scala 프로 그래 밍 노트
val: 자바 의 final 형식 과 유사 한 변수
1, 기본 형식: val 변수 이름: 변수 형식 = 값 2. 그 중에서 가끔 변수 유형 은 생략 할 수 있 고 자동 으로 식별 할 수 있다 .
3. 변 수 는 값 을 부여 할 수 없습니다. 수정 var: 자바 의 비 final 형 변수 와 같 습 니 다.
val msg: java.lang.String = "Hello World String"
println("msg: " +msg)
var msgVar: java.lang.String = "Hello World String"
println("msgvar: " +msgVar)
msgVar = "Hello World String new value"
println("msgvar:" + msgVar)
결과
msg: Hello World String
msgvar: Hello World String
msgvar:Hello World String new value
함수 정의
함수 형식:
def 함수 명 (매개 변수 목록,...): 결과 형식 = {} 을 되 돌려 줍 니 다. 다음은 max 함수 입 니 다.
def max(a: Int,b: Int):Int ={
if(a > b)
a
else
b
}
var maxValue = max(6,10)
println("max(6, 10) the max maxValue is :" + maxValue )
println("max(6, 10) the max is :" + max(6,10) )
반환 결 과 는 비교적 큰 값 이다.
max(6, 10) the max maxValue is :10
max(6, 10) the max is :10
1, 때로는 함수 가 반환 결과 유형 을 제정 해 야 합 니 다. 예 를 들 어 함수 가 재 귀 할 때 반환 결과 유형 을 명확 하 게 제정 해 야 합 니 다.
2. max 라 는 예 에서 결 과 를 제때에 쓰 지 않 고 컴 파일 러 도 추측 할 수 있 습 니 다. 이 함수 가 다음 과 같은 모양 으로 프로 그래 밍 되 고 역할 기능 은 변화 가 없습니다.
def max2(a: Int,b: Int)={
if(a > b)
a
else
b
}
3. 함수 가 한 문장 만 있 으 면 괄호 도 쓰 지 않 아 도 됩 니 다. 예 를 들 어 max 함수 가 이렇게 되 었 는데 도 역할 기능 은 변 함 이 없습니다.
def max3(a: Int,b: Int)=if(a > b) a else b
여기까지 왔 을 때 아버 지 는 정말 what a fuck function 이 오고 싶 어서 바닥 이 깨 졌 습 니 다.
다음은 인삼 도 전달 하지 않 고 유용 한 결 과 를 되 돌려 주지 않 는 함수 의 정의 입 니 다. 해석 기 가 되 돌려 준다 고 합 니 다.
greeting (): Unit, 그 중에서 Unit 이 가치 가 있 을 때 greetin 의 반환 형식 은 자바 의 void 형식 과 유사 하 며 자바 의 void 형식 은 Unit 으로 매 핑 됩 니 다.
def greeting()=println{"no args no return?"}
greeting()
greeting
but 호출, 홈, 이게 다 되 는데 둘 다 돌아 왔어요.
no args no return?
no args no return?
while 순환
Scala 에서 i + + 또는 + i 는 그 역할 을 하지 못 하고 i = i + 1 만 사용 할 수 있 습 니 다.
var i = 0;
while(i <= 5){
println("i is : " +i);
i = i + 1
}
foreach 와 편지 숫자 면 량
편지 숫자 면 형식: 매개 변수 목록 = > 함수 체
(x: Int, y:Int) => x + y
다음 결 과 는 모두 같다.
args.foreach(arg => println(arg))
args.foreach((arg: String) => println(arg)) args.foreach(println)
for 순환
for 순환 에서 val 형식 이기 때문에 for 표현 식 에서 값 을 다시 부여 할 수 없습니다. < - 그 뜻 으로 이해 할 수 있 습 니 다. for (arg < - args) 는 args 의 arg, 나 니 에 대해 어떻게 생각 합 니까? 자바 의 foreach 중의 in 인 것 같 습 니까?
for(arg <- args){
//arg = arg + "new value" //resi
println("for(arg <- args) now arg is val :"+arg)
}
args 가 args for main 을 입력 하면 출력 결과:
for(arg <- args) now arg is val :args
for(arg <- args) now arg is val :for
for(arg <- args) now arg is val :main