Set 특성 * Set 은 변경 가능한 것과 변경 불가능한 것 모두를 제공합니다. * Set 을 위한 기반 트레이트가있고 이를 상속한 변경 가능 집합, 변경 불가능 집합을 위한 2가지 트레이트가 있다. ( 트레이트는 자바 인터페이스와 비슷한 것으로 나중에 설명 ) 생성 val s = Set ("Hi" , "There") 리스트나 배열과 비슷하게 생성한다. 변경 불가능한 Set 객체를 만들어서 변경 불가능한 s 에 대입한다. 변경 import scala.collection.immutable.set var s = Set ("Hi" , "There") s += "bye" 이 코드에서 눈여겨 볼것은 var 로 선언된 s 이다. 이 코드는 기존 s 에 "bye" 를 더하면서 새로운 집합으로 재 할당 한것이다. 즉..
Tuple 특성 * 리스트와 마찬가지로 변경 불가능 하다. * 리스트와 다른 점은 다른 타입의 원소를 넣을 수 있다는 점 * 메소드에서 여러 다양한 객체를 리턴해야 하는 경우 유용하다. 생성 val p = ( 99, "High") 그냥 객체들을 콤마로 구분하여 () 사이에 넣어주면 된다. 저것의 타입은 Tuple2[Int,String] 이다. 튜플의 타입은 원소의 개수와 각각의 타입에 따라 달라진다. (22 개 까지 지원) 즉 ('u','r',"the") 의 타입은 Tuple3[Char,Char,String]이다. 원소에 접근 println(p._1) 튜플의 첫번째 값에 접근할수있다. 마지막 왜 튜플은 원소접근을 p(0) 즉 p.apply(0) 처럼 할 수 없을까? -> 리스트의 apply 메소드는 항상..
이 시리즈는 스칼라언어의 창시자인 마틴 오더스키가 직접 저술한 Programming in Scala (2판) 을 참고로 하여 정리할 예정입니다. 잘못된 점이 있으면 지적해주시면 바로 수정하겠습니다. List 특성 스칼라의 배열이 값을 변경 할 수 있는 순서가 정해진 시퀀스라면 스칼라의 리스트는 기본적으로 값을 변경 할 수 없는 시퀀스입니다. 함수형 스타일이라는것은 메소드 내에서 절대로 부수효과가 일어나면 안되는, 그래서 더 신뢰할 수 있고 재사용하기 쉬운 코드를 만드는게 주 목적이라 , 그 목적에 적합한 콜렉션이라 할 수 있습니다. * 참고 : 부수효과(부작용)에 관한 이야기 Linked List 식으로 구현 되 있으므로 head / tail 중간 삽입같은게 원할합니다. 생성 배열 생성과 비슷합니다. v..
이 시리즈는 스칼라언어의 창시자인 마틴 오더스키가 직접 저술한 Programming in Scala (2판) 을 참고로 하여 정리할 예정입니다. 잘못된 점이 있으면 지적해주시면 바로 수정하겠습니다 Array 생성 스칼라에서 객체로 만들때는 new 를 사용합니다. 다음과 같죠 val a = new Array[String](2) // String 타입이 2개 담길수 있는 배열의 객체를 만들었네요. 자 배열에 값은 어떻게 넣을까요? a(0) = "hello" a(1) = "world" 요렇게 넣으면 됩니다. 여기서 눈여겨 볼것은 일단 val 로 선언했는데 값을 바꾼겁니다. 이건 전에 얘기했다시피 변수를 재 할당 할 수 없는거지, 변수가 가르키는 객체 안의 내용은 여전히 변경가능하다는거죠. - 자바에서는 Str..
개인적으로 느끼는 스칼라라는 언어는 , 창시자가 너무 생각이 많구나~ 욕심도 많고 그런 느낌을 받습니다. "내가 쓰기 편하도록 엄청나게 많이 신경썼으니, 니들도 이걸 잘 쓰려면 내가 엄청나게 많이 신경쓴 그 부분들을 너희들도 일단 엄청나게 신경써서 공부해~~ 그 후엔 편해질꺼야" 이건데요. 그냥 안쓸래요. 라고 말해드리고 싶기도 합니다. ㅎㅎ 또한 이 언어는 하이브리드입니다. 함수형과 객체지향 양쪽을 지원합니다. 함수형을 추구하되 객체지향도 쓸 수 있다 정도입니다만, 덕분에 굉장히 강력해 질 수도 혹은 복잡할 수 있습니다. 딱 맞는 예는 아니지만 마치 하이브리드 객체지향인 C++ 이 더 순수한 객체지향언어인 자바보다 복잡하듯이 말이죠. C++ 개발자중 객체지향에 대해서 잘 모르는 개발자들이 많듯이 스칼라..
OKKY 및 페이스북 에서 두서없이 작성했던 글을 모아보았습니다.(정확한 통계가 아니라 제 협소한 경험에 의한 주장이라는 점과 대중화의 정의가 사람마다 다를것이기때문에 그냥 이런 생각도 있구나 하시면 될 거 같습니다.:-) ) 유망언어들 중 클래스가 없는 언어들이 있죠.클로저,golang 말입니다. 이 언어들은 클래스의 무용과 그 자체가 가진 복잡함을 단점으로 대비시켜 자기 언어를 광고 하기도 합니다. 맞는 부분도 있지만 대중화에 있어서는 틀렸다고 봅니다. 인간이란 사회적 동물입니다. 어떤것들의 집합,연관성,소속,계층에 대해 인식하는것을 애초부터 자연스럽게 느껴왔죠. 클래스가 그런겁니다. 사람들은 뭔가가 하나에 뭉쳐있다는것 만으로 큰 안정감을 얻게 됩니다. C++ 자바가 대규모 프로젝트에서 계속 사용되는..
1편 언어에서 강력함 과 대중성 그리고 스칼라 이글은 스칼라에 대한 전문적인글이 아니며 , 스칼라의 모든부분을 말하는글은 아닙니다.스칼라의 함수자(Functor) , 컬렉션 및 유틸리티 에 대해서 한정되있으며, 먼저 스칼라말고 다른 여러가지 언어들에 대해서 말하고도 있습니다. 제목에 일반적이라고 붙힌이유는 , 스칼라의 다른 기능들 , 소위 Active Object & Actor Pattern 기반의 동시성 구현라이브러리로 알려진 아카라든지,콤비네이터를 이용한 인터프리터 개발같은것들을 대중적이라고 보기엔 무리라고 판단하였기에 그런것들을 제외한 극소수의 내용들로 이루어져있기때문입니다. 그리고 아래 글에서 예시로 보여지는 (슈도)코드는 문법적으로 정확치 않은 예 이며, 글에 쓰여진 모든 지식은 저의 것이아니라..
- Total
- Today
- Yesterday
- 파이썬 강좌
- Play2 로 웹 개발
- Hyperledger fabric gossip protocol
- 스칼라 강좌
- 스칼라 동시성
- 스위프트
- 주키퍼
- 하이퍼레저 패브릭
- Akka
- 하이브리드앱
- 플레이프레임워크
- Play2
- Actor
- 파이썬 머신러닝
- play 강좌
- Adapter 패턴
- 그라파나
- 안드로이드 웹뷰
- 블록체인
- 파이썬 동시성
- CORDA
- hyperledger fabric
- Golang
- 이더리움
- 파이썬
- play2 강좌
- 엔터프라이즈 블록체인
- 스칼라
- akka 강좌
- 파이썬 데이터분석
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |