fmt패키지는 Go 언어에서 표준 입출력을 다루는 데 사용된다.
C언어의 printf, scanf와 유사한 형식화된 입출력을 제공한다.
이 패키지가 있어야 string, value, input, output을 형식화할 수 있다.
고랭에는 'verbs'라고 불리는 형식이 있다.
형식화될 명명된 값을 위한 플레이스홀더라고도 볼 수 있는데
어렵게 말로 설명하지 말고 형태를 보자.
주요 Verbs
%v: 기본 형식. 다양한 타입의 값을 기본 형식으로 출력합니다.
%+v: 구조체의 경우, 필드명과 함께 값을 출력합니다.
%#v: 값의 Go 문법 형식으로 출력합니다.
%T: 값의 타입을 출력합니다.
%d: 정수 형식으로 출력합니다.
%f: 부동소수점 형식으로 출력합니다.
%s: 문자열 형식으로 출력합니다.
%q: 이중 인용부호로 묶인 문자열 형식으로 출력합니다.
%x, %X: 16진수 형식으로 출력합니다.
"Hello,World"라는 문자열을 출력하고 싶으면 어떻게 해야 하나?
fmt.Printf("%s", "Hello World")
fmt 패키지에서 > printf 메서드를 쓰고 > %s verb를 이용해 인수로 들어온 문자열을 출력한다.
<잠깐!> <- 그냥 내가 하고 싶어서 추가로 알아본 내용
1. verbs가 C의 형식 지정자와 유사한 이유는?
Go의 fmt 패키지는 C언어의 printf와 scanf 함수의 영향을 받았다.
고랭은 C를 기반으로 만들어졌나? 근데 고랭은 OOP고 C는 절차지향언어 아닌가?
Go언어는 C언어에서 영감을 받았지만, 직접적으로 C를 기반으로 한 것은 아니다. Go는 간결함, 효율성, 그리고 특히 동시성을 처리하는 능력에 중점을 둔 언어다. Go는 절차적 프로그래밍뿐만 아니라 객체지향적 특성도 가지고 있다. 하지만 전통적인 OOP 언어처럼 클래스나 상속을 사용하지 않고, 인터페이스와 구조체를 통해 다형성과 캡슐화를 지원한다. C언어는 순수한 절차적 언어로, OOP의 특성을 내장하고 있지 않다.
C언어의 형식 지정자와 유사한데 고랭에서는 verbs가 더 간단하다 했는데 예시는?
C언어: 각 데이터 타입마다 구체적인 형식 지정자가 필요하다. 예를 들어, %d는 정수, %f는 부동소수점 숫자, %s는 문자열, %c는 단일 문자 등으로 사용된다.
Go언어: Go는 %v라는 '일반' 서식 지정자를 제공하여 다양한 데이터 타입을 기본 형식으로 출력할 수 있다. 이는 Go의 타입 시스템과 잘 통합되어 있어, 명시적인 타입 지정 없이도 효과적으로 값을 출력할 수 있게 한다. 물론, Go에도 %d, %f, %s 같은 특정 타입을 위한 서식 지정자가 존재한다.
아하! 고랭은 현대적인 프로그래밍 요구사항과 개발자의 편의성을 고려하여 설계되었구나!
다시 본론으로 돌아가자.
Print, Println, Printf 함수는 표준 출력(주로 화면)에 데이터를 출력합니다.
Print: 인자를 문자열로 변환하여 출력합니다.
Println: 인자를 문자열로 변환하여 출력하고 줄바꿈을 추가합니다.
Printf: 서식 문자열을 사용하여 출력 형식을 지정할 수 있습니다.
Scan, Scanf, Scanln 함수는 표준 입력(주로 키보드)에서 데이터를 읽습니다.
Scan: 공백으로 구분된 값을 읽어들입니다.
Scanf: 서식 문자열을 사용하여 입력 형식을 지정할 수 있습니다.
Scanln: 한 줄을 읽어들이되, 줄바꿈 문자 전까지만 읽습니다.
키보드에서 뭔가가 입력되면...!
다음은 Tucker의 Go 언어 프로그래밍 6장, 연산자입니다!