반응형

이번 스터디 부터는 내용이 쫌 길다.

듣고있는 강의의 시간이 점점 길어지면서 그냥 바로 Flutter로 넘어가고 싶지만...

아무리 경력개발자여도 기초는 무시하면 안되는 법....

이번 포스팅은 선언자에 관한 내용.

정해진 값이 명확하지 않을때 사용하여 최초 할당된 값에 따라 변화하는 var타입과

단어 그 자체로 변동성이 있는 dynamic에 대해서다.

자세한 건 아래 코드블럭을 참고하고, 아래 dart 구문을 돌리기 위한 준비물인 웹컴파일러는 

첫번째 포스팅을 참조바람 => Dart언어공부- 01.HelloWorld

 

//06.var, dynamic 타입
//언제나 그렇듯 자바의 psvm처럼 main부터 시작.
void main() {
  //기존처럼 var로 선언하여 문자열 할당.
  var name = '임의값';
  print(name);
  
  //이번에는 var로 선언하여 숫자값을 할당
  var number = 2;
  print(number);
  
  
  //문자열로 사용하겠다고 선언 후, 숫자값을 할당한다면 당연히 불가능하다.
  //String number2 = 2;
  
  //var선언자는 내가 할당한 값에 의해 타입이 정해진다.
  
  //위에 var로 선언 후, 다시 문자열을 재할당 해보자.
  name = '임의값 변동';
  //문제없이 변경된 값으로 추출된다.
  print(name);
  
  //이번에는 숫자값을 넣어보자.
  //해당변수를 처음 선언 후 할당된 값은 문자열.
  //숫자값을 할당하려 하면 당연히 오류가 발생한다.
  //이미 name변수는 문자열 타입으로 지정되었기 때문.
  //name = 1;
  //print(name);
  
  
  
  //이번에는 dynamic이라는 선언자를 살펴보자.
  dynamic _name = '다이나믹값';
  //var선언자를 사용했을때 처럼 문제없이 출력된다.
  print(_name);
  
  //var타입에서는 아래처럼 숫자를 넣었을땐 오류가 발생했지만
  //dynamic선언자를 사용하면 오류없이 값의 종류를 바꿀수 있다.
  //dynamic은 이 처럼 할당된 변수값의 종류에 영향없이 타입이 변경되는 선언자라고 할수있다.
  _name = 1;
  print(_name);
    
  //그런데 var선언자의 한가지 특이한 점이 있다.
  //var를 사용하는데, 이번에는 변수를 할당하지 않고 선언해보자.
  var _named;
  
  _named = 'dynamic?';
  print(_named);
  
  //최초 선언시 값을 할당해주면, 타입이 지정되지만 (초기화하지 않는다고 표현함.)
  //그렇지 않고 이 후에 값을 지정해주면 마치 dynamic처럼 값의 타입이 변동된다.
  
  //위에 문자열을 넣었지만, 아래와 같이 숫자값을 넣는다면?
  _named = 1;
  //문제없이 기능이 동작한다.
  print(_named);
  
  //그러면, int나 String, double이런거 없이 그냥 편하게 var나 
  //아니면 더 간단하게 dynamic로 쓰면 되는거 아닌가? 하겠지만
  
  //프로그램을 만들다 보면 선언된 변수를 사용할 때, 숫자로 처리되어야 하는
  //변수값이 갑자기 문자열로 변경이 된다거나, 하는 일이 발생될수 있다.(오류발생)
  //또한 추후 내가 유지보수를 하거나 다른사람이 봤을때, 용도의 명확성을 알려주기 위해서도
  //확실한 선언자를 사용하는것이 좋다.
  //물론 내 생각이기도 한데, 대부분의 회사가 그렇게함.
  
}

 

자 그럼 결과물은?

임의값
2
임의값 변동
다이나믹값
1
dynamic?
1

다음 공부는 기다리고 기다리던 자료구조다.

처음엔 다른언어 기초부터 다시 배울생각에, 막막하기도 하고 지루할거같기도 했는데

막상해보니 재밌다.

 

한가지 진짜 확실한 건, 언어 한가지만 제대로 해두면 다른 언어 배우는 속도는 2배인거같다.

(프로그래밍 언어에 한함..)

반응형
반응형

지난번에는 print라는 함수로 내가 원하는 문자열을 출력해보았다면

이번에는 변수에 담은다음에 출력해보자.

변수는 일종의 그릇정도라고 생각하면 이해하기 쉽다.

 

보통 사용할 땐, var name = "임의값"; 형태로 쓴다.

여기서 name은 그릇정도라고 생각하면 되고, "임의값"은 그릇안에 들어갈 내용물(음식같은..)정도라고 생각하면 되겠다.

그리고 그 앞에 var라고 쓰여진 자리에는, 이것이 변수라는 것을 가르쳐주는 부분인데

var라고 사용한 이유는 어떤자료형의 변수를 쓸지 미정일때 주로 var로 선언해둔다.

 

JAVA같은 경우 변수명 앞에 int, boolean, string, double 등 다양한 선언이 있으며 

이는 변수가 어떤 종류인지 컴퓨터에게 알려주는 역할을 한다.

쉽게 예를들면, String name = "임의값";  이라고 하면, 

문자열인 "name"이라는 변수에 "임의값"이라는 글자를 담아놔~ 라는 뜻이다.

2번째, 변수선언해서 원하는 값을 담고, 출력해보기!

//02.변수선언해서 원하는 값을 담아 출력해보기
void main(){
  //변수는 영어로 variable, 줄여서 var
  var name = '테스트변수';
  print(name);
}

 

※준비물은 Dart언어공부- 01.HelloWorld 포스팅에 가보면 써있음.

입력하고 나서 CTRL+ENTER또는 RUN 버튼 클릭!

테스트변수

 

2번째, 변수선언 공부 끝

반응형

+ Recent posts