'2017/01/10'에 해당되는 글 2건

  1. 2017.01.10 [scala] zip/unzip 예시
  2. 2017.01.10 [shell] 10번째 이상의 매개변수 접근하기

[scala] zip/unzip 예시

scala 2017. 1. 10. 19:01


스칼라에서 zip과 unzip을 사용해서 얻을 수 있는 특별한 이득이 있을만한 예시를 소개한다. 


보통 zip과 unzip은 붙였다가 떼였다가 할 때 사용할 수 있다. 

val b = (List(1, 2, 3) zip List(List(0.0), List(0.2), List(0.3))).unzip
println(b)


다음은 결과이다. 


(List(1, 2, 3),List(List(0.0), List(0.2), List(0.3)))





리스트를 붙여서 특정 정보가 있을 때는 보여주지 않으려 할 때, 

즉, 다음 예시에서 List(0.0)이 존재하면 아예 그 값은 따로 저장하고 싶지 않을 때 사용할 수 있다. 


val a = (List(1, 2, 3) zip List(List(0.0), List(0.2), List(0.3))) .filter(!_._2.forall(_ == 0.0)).unzip
println(a)


이전 예시를 실행하면, 첫번째 값이 List(0.0)이라 filter에서 걸렸기 때문에 1 키는 저장하지 않았다. 

(List(2, 3),List(List(0.2), List(0.3)))

Posted by '김용환'
,



10번째 이상의 매개변수 접근할 때, 조심해야 한다.


간단한 예시이다.


$ cat test.sh

#!/bin/sh


echo $1 $2 $3 $4 $5 $6 $7 $8 $9 $10




다음과 같이 10번째 매개변수를 입력해 본다. $1의 값과 0이 합쳐져 10이 출력된다.


$ ./test.sh 1 2 3 4 5 6 7 8 9 30

1 2 3 4 5 6 7 8 9 10




${n}의 형태로 ${10}을 입력해야 동작한다. 

#!/bin/sh


echo $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10}



테스트를 해보면 잘 동작한다. 

$ ./test.sh 1 2 3 4 5 6 7 8 9 30

1 2 3 4 5 6 7 8 9 30



Posted by '김용환'
,