반응형
HackHiJack
HHJ
HackHiJack
전체 방문자
오늘
어제
  • 분류 전체보기 (99)
    • chatGPT (2)
    • pwn (2)
    • 워게임 (32)
    • Reversing (0)
    • Cryptography (12)
    • Web (6)
    • CTFs (16)
    • TryHackMe (6)
    • Go (5)
    • Forensics (18)

블로그 메뉴

  • 홈

공지사항

  • Welcome To HHJ's Blog

인기 글

태그

  • linkfile
  • analyis
  • pwnable.kr
  • go
  • package
  • 해킹 #TryHackMe #WriteUp #ignite
  • startup
  • main
  • function
  • hacking
  • ㅣ
  • rootme
  • 암호 #AES #드림핵
  • 포렌식
  • func
  • Import
  • forensic
  • webhacking.kr
  • main.go
  • shellctf

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
HackHiJack

HHJ

[Go] for(반복)문 사용하는법(Use loop for in Go)
Go

[Go] for(반복)문 사용하는법(Use loop for in Go)

2022. 1. 22. 18:56
728x90
반응형

오늘은 오랜만에 Go언어에 대한 설명을 해볼 것이다.

 

Go는 무조건 loop문을 사용하는 방법은 for 명령어 밖에 없다.

for문은 아래처럼 매우 간단하게 정의할 수 있다.

for [for문 코드] {반복할 코드}

예를 들어, 숫자들을 받아서 모두 더하는 코드를 만들어보면 아래와 같다.

package main

import (
	"fmt"
)

func AllAdd(num ...int) int {
	var total int
	for _, nums := range num {
		fmt.Println(nums)
		total += nums
	}
	return total
}

func main() {
	total_result := AllAdd(1, 2, 3, 4, 5, 6, 7)
	fmt.Println(total_result)
}

위 코드는 1~7까지 수를 더한 값을 출력한다.

AllAdd함수에 for문을 사용하여 total에 인자로 받은 num을 계속 할당하는걸 확인할 수 있다.

 

중간에 range 함수를 사용할 때, 왜 "_"를 사용하냐면, range는 index, 결과 값을 같이 반환기 때문에, index를 _를 넣어서 무시하게 만드는 것이다.

결과는 아래처럼 잘 나온는 걸 확인할 수 있다.

반응형

다른 방법으로는 index를 이용하는 방법이다.

함수 인자를 ...[something]으로 정의하면, something에 인자가 배열로 저장된다.

그래서 0부터 num의 길이까지의 인덱스를 각각 매겨서 total에 할당 해줄수 있다.

약간 C언어, Python의 for문처럼 사용하는 방식이다.

 

말이 어려우니 바로 코드를 확인해보자.

package main

import (
	"fmt"
)

func AllAdd(num ...int) int {
	var total int
	for i := 0; i < len(num); i++ {
		total += num[i]
	}
	return total
}

func main() {
	total_result := AllAdd(1, 2, 3, 4, 5, 6, 7)
	fmt.Println(total_result)
}

위는 range를 사용하지 않아서 index값을 따로 반환하지 않는다.

그래서 index를 상관하지 않는다.

결과를 확인하면 같은 결과 값을 확인할 수 있다.

 

두 방법 중 range는 간단할 것 같은데, index가 처리가 귀찮다.

그리고 i를 계속 증가시키며 num의 index를 이용하는 방법은 그냥 range보다 어려워 보이고, 귀찮은 부분도 있다.

 

결론 : 둘 중 비슷한 난이도라서, 그냥 편한걸로 사용하자.

728x90
반응형

'Go' 카테고리의 다른 글

[Go] Function 사용하기(func 사용)  (0) 2021.02.08
[Go] 상수와 변수 선언(Variables and Constants)  (0) 2021.02.07
[Go] Package, import,func - hello go 출력하기 (기본문법)  (0) 2021.02.07
[Go] go 언어 VScode에 설치 및 사용  (0) 2021.02.07
    'Go' 카테고리의 다른 글
    • [Go] Function 사용하기(func 사용)
    • [Go] 상수와 변수 선언(Variables and Constants)
    • [Go] Package, import,func - hello go 출력하기 (기본문법)
    • [Go] go 언어 VScode에 설치 및 사용
    HackHiJack
    HackHiJack
    $ whoami HHJ

    티스토리툴바