티스토리 뷰
[Go 세미나] map & pointer 세미나 피드백 - 배열과 슬라이스의 함수 전달
SdardewValley 2021. 12. 31. 16:44https://sdardew-valley.tistory.com/entry/Go-%EB%B0%B0%EC%97%B4-%EC%8A%AC%EB%9D%BC%EC%9D%B4%EC%8A%A4
[Go] 배열 & 슬라이스
Go는 데이터의 시퀀스를 다루기 위해서 배열과 슬라이스 타입을 사용할 수 있다. 배열: 길이가 고정된 시퀀스 슬라이스: 길이가 가변적인 시퀀스 배열과 슬라이스 비교 배열 슬라이스 길이가 고
sdardew-valley.tistory.com
Go의 배열과 슬라이스는 위의 내용을 참고하시면 됩니다!
위의 코드는 정상적으로 실행되는 코드이다. main 함수의 numbers와 multiply의 파라미터 numbers 모두 슬라이스 타입이다. numbers의 모든 값이 factor의 배수만큼 거진 것을 확인할 수 있다.
main 함수의 numbers는 배열이고, multiply의 numbers는 슬라이스이다. 에러 코드 1을 실행했을 때는 type이 일치하지 않아서 문제가 발생한다.
에러 코드 2와 에러 코드 3 모두 타입이 달라 사용이 불가능하다는 에러 메시지를 출력한다.
에러 코드 1에서 multiply 함수의 파라미터 numbers에 크기를 지정해 주었다. main 함수의 numbers multiply 함수의 파라미터 numbers 모두 배열이다.
코드는 정상 동작이 된다. go는 call-by-value로 실행이 되기 때문에 multiply 함수를 실행해도 main 함수의 numbers 배열의 결과가 변함이 없는 것을 확인할 수 있다.
그렇다면 배열 numbers를 정상코드 1의 multiply 함수에 어떻게 사용할까?
정상 코드 3의 main 함수의 numbers는 배열이다. 그리고 multiply 함수의 파라미터 numbers는 슬라이스이다. main에서 multiply 함수를 호출할 때 numbers를 아예 슬라이스(슬라이스는 참조 타입이다)로 하여 전달을 해주었다. 실행 결과 3은 실행 결과 1과 일치하는 것을 확인할 수 있다.
- Total
- Today
- Yesterday
- 확장 함수
- 2차 인터뷰
- github
- Python
- squash merge
- string
- postman
- 주생성자
- Kotlin In Action
- downTo
- python3
- postman tests
- go 특징
- 네이버 2022 공채
- pm.test
- DGS Framework
- Squash and merge
- git
- 코틀린
- postman collection
- Basic Type
- graphql
- mysql
- Kotlin
- solidity
- pm.expect
- hashcode
- 1차 인터뷰
- 코딩테스트
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |