[Go/Golang] Go 배열(array)과 슬라이스(slice) 차이
2020. 9. 30. 16:26
Programming/Go
Go 배열과 슬라이스 차이 I. Array vs Slice 두 데이터 타입 모두 컨테이너의 역할을 하는 것은 동일하지만 아래의 차이가 있음. 배열(array) 슬라이스(slice) 타입 값 참조 용량(cap) 수정불가 수정가능 길이(len) 수정불가 수정가능 비교연산 가능 불가능 호출 복사 전달 참조 전달 가변적 특성때문에 슬라이스를 주로 사용하게 됨 cap() : 배열/슬라이스 용량 len() : 배열/슬라이스 개수 1. 배열/슬라이스 차이 확인 배열 arr1 := [...]int{1, 2, 3, 4, 5, 6, 7} //--> 입력하는 데이터수에 맞게 자동으로 크기 조정 var arr2 [7]int arr2 = arr1 arr2[0] = 10 fmt.Printf("1번 배열 : %v , 1번 배열 메..
[Go/Golang] Go string(문자열) 다루기
2020. 8. 22. 12:55
Programming/Go
Go 문자열 Go는 char type이 존재하지 않고, rune(int32)를 이용해 문자의 코드 값을 표현 I. 문자열 선언 Go에서 문자열 선언 시 "(큰 따옴표) 와 `(백스쿼트) 를 사용 var dir1 string = "Develope\\go\\blog\\" dir2 := `Develope\go\blog\` fmt.Println(dir1) >>> Develope\go\blog\ fmt.Println(dir2) >>> Develope\go\blog\ 1. Escape 자주 쓰는 escape \\ --> \ \` --> ` \" --> " \a --> 콘솔벨 \b --> 백스페이스 \f --> 쪽 바꿈 \n --> 줄 바꿈 \t --> 탭II. 문자열 갖고 놀기 1. 문자열 결합 '+'..
[Go/Golang] Go의 숫자형과 부동소수점 오류
2020. 8. 15. 18:40
Programming/Go
Go의 숫자형과 부동소수점 오류 Go는 매우 엄격한 문법을 갖고 있기 때문에 동일한 값을 지녀도 형이 다르다면 연산이 불가 Go 역시 부동소수점 오류를 갖기 때문에 연산을 위한 형변환 과정에서 주의가 필요 I. Go의 숫자형 1. 종류 uint unsigned integers 로 0 ~ max value 까지 표현 uint8/16/32/64 uint로 선언할 경우 32 or 64bit으로 설정 uint8은 byte와 동일한 값을 가짐 package main import ( "fmt"; "math" ) func main() { uint8_num := uint8(3) byte_num := byte(3) fmt.Println("uint8 : ", uint8_num, ", byte : ", byte_num) f..
[Go/Golang]go 패키지(package)와 go init(초기화)
2020. 8. 1. 13:48
Programming/Go
Go package & Go init I. Import & Package 1. 패키지 package main 코드의 구조화(모듈화) 및 재사용성 제공 패키지 이름 == 디렉터리 명 같은 패키지 내에 있으면 소스파일들이 디렉터리명을 패키지 이름으로 사용 (단 main은 제외 => package main은 start point기 때문에 디렉토리 내에 단 하나만 존재해야 함) main이 아닌 패키지의 경우 main 메서드가 필요하지 않지만, 단독 실행은 불가 패키지 내의 함수가 소문자로 시작하면 Private, 대문자 시작 시 Public 독립적인 작은 패키지 단위로 제작하고 조합해 하나의 프로그램을 형성하는 것을 권고함 2. import package main import ( "fmt" "src/mypack..
[Go/Golang]Go 제어문 - If/else, Switch, For
2020. 7. 25. 18:46
Programming/Go
Go 제어문 I. If 문 boolean 검사만 가능 (명시적으로 True/False가 나오도록 구현) 소괄호 사용 X 1. 기본 사용법 func main() { if 조건1 { 실행1 } else if 조건2 { 실행2 } else { 실행3 }2. 주의사항 괄호 줄 바꿈 금지 go는 바이트코드로 바꾸며 자동으로 세미콜론을 붙이는데, 이때 줄 바꿈을 하는 경우 if (조건); {실행} ; 과 같이 인식되기 때문 func main() { a := 10 if a > 10 { fmt.Println("10보다 크다") } } >>> go run main.go raise error 괄호 생략 불가 java등에서는 조건이 하나인 경우 괄호를 생략 가능한 경우가 있는데 go는 반드시 괄호가 포함돼야 함 func m..
[GO/Golang]selenium없이 Webdriver 사용하기
2020. 6. 20. 16:26
Programming/Go
1. Webdriver WebDriver는 사용자 에이전트를 검사하고 제어할 수 있는 원격 제어 인터페이스입니다. 프로세스 외부의 프로그램이 웹 브라우저의 동작을 원격으로 지시할 수 있어 웹 자동화를 가능하게 합니다. 웹 문서에서 DOM을 발견하고 조작하고 사용자 에이전트의 동작을 제어하기 위한 인터페이스 세트가 제공됩니다. 따라서 주로 웹 제작자가 별도의 제어 프로세스에서 사용자 에이전트를 자동화하는 테스트를 작성하는 데 사용하지만, 보통 인공지능 학습을 위한 데이터셋 준비 등 웹 크롤링에 자주 사용됩니다.(페이지 스크립트 구동이 필요한 경우 html 파싱만으로 읽을 수 없는 요소들이 있기 때문) 셀레니움이 웹드라이버 API를 제공하고 있으며, go에서도 셀레니움 라이브러리가 있지만 셀레니움 라이브러리..
[GO/Golang]기본 자료구조와 메모리 관리(+ Low-level programming)
2020. 5. 24. 22:48
Programming/Go
2020/05/02 - [Coder/Go] - [Go]Mac os Go lang 개발환경 세팅 (with VScode) [Go]Mac os Go lang 개발환경 세팅 (with VScode) 1. Go lang? go는 구글에서 개발하여 서비스하고 있는 프로그램 언어로 2009년에 처음 등장한 이후 지속적으로 활용범위와 선호도가 높아지고 있는 언어입니다. go의 가장 큰 특징이자 강점은 '병행�� leo-bb.tistory.com 1. 기본 자료구조 오늘은 기본 자료구조에 대해 소개해드리겠습니다. Python에서도 자주 만나는 List, map, Array 등이 Go에서는 어떻게 표현되는지, 그리고 Go가 가지고 있는 장점 중 하나인 Low level programming에 대해 얕게 알아봅니다. 1)..