티스토리 뷰
구조체는 다른 타입의 값들로 구성이 가능하다. 각 데이터에 이름을 부여해서 값의 의미를 표현할 수 있다.
구조체를 정의하는 방법은 "struct 구조체의 이름 {데이터1 이름: 데이터1, 데이터2 이름: 데이터, ... }"이다. 중괄호 안의 데이터를 field라고 부른다.
구조체는 "키: 값"의 나열이다. 키는 필드의 이름, 값은 필드에 저장할 데이터이다. 위의 예시에서 알 수 있듯 구조체의 인스턴스를 생성할 때 정의한 순서를 지킬 필요는 없다.
구조체에서 값을 읽기 위해서 마침표(.)를 사용한다. 구조체.필드의_이름 방식으로 데이터를 읽어오면 된다.
가변 인스턴스의 경우 필드의 값의 변경이 가능하다.
특정한 필드만이 가변성을 가지지 않고 인스턴스 자체가 가변 인스턴스이다. 러스트는 필드의 일부만 가변성을 가지게 할 수 없다.
구조체의 새 인스턴스를 생성하는 함수이다. User 구조체는 미리 선언되어 있어야 한다. 그리고 함수는 새 인스턴스를 리턴하도록 해야한다.
📌 필드 초기화 단축 문법(field init shorthand syntax)
매개변수와 구조체의 필드 이름이 동일한 경우 필스 초기화 단축 문법을 사용하여 필드 이름만 입력해도 된다.
📌 구조체 갱신 문법(struct update syntax)
새 인스턴스를 생성할 때 이미 존재하는 인스턴스와 필드 값이 겹치는 것이 있다면 사용 가능하다. 기존 인스턴스와 다른 값들만 작성해주고 겹치는 것은 "..기존_인스턴스_이름"을 추가해 주면 된다.
🌱 튜플 구조체(tuple structs)
튜플 구조체는 튜플 형태의 구조체이다. 정의할 때 이름은 필요하지만, 필드의 이름은 적지 않고 타입만 적는다.
튜플 구조체를 정의할 때는 "struct 이름(필드1의 타입, 필드2의 타입, ...);" 방식으로 작성한다. 그리고 새로운 인스턴스를 생성할 때 각 자리의 타입의 데이터를 넣어주면 된다.
Color와 Point는 struct의 이름을 제외하고는 같지만, 다른 구조체이다. Color 타입을 사용하는 코드에 Point를 사용할 수는 없다.
이전 글에서 보면 튜플에서 튜플_이름[인덱스 번호]로 데이터를 읽었다. 하지만 튜플 구조체는 이와는 다르다. 튜플 구조체에서는 튜플_구조체_이름.인덱스_번호 방식으로 데이터에 접근한다.
- Total
- Today
- Yesterday
- Kotlin
- downTo
- python3
- hashcode
- pm.test
- java
- postman collection
- 2차 인터뷰
- 1차 인터뷰
- solidity
- 코틀린
- Basic Type
- Python
- pm.expect
- string
- DGS Framework
- graphql
- 네이버 2022 공채
- squash merge
- Squash and merge
- 확장 함수
- mysql
- go 특징
- github
- 주생성자
- postman
- postman tests
- 코딩테스트
- Kotlin In Action
- git
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |