숙련된 개발자를 위한 Golang - 2부
9629 단어 goprogrammingtutorialbeginners
어서 오십시오,
이것은 Golang 튜토리얼 시리즈의 두 번째 부분입니다. 첫 번째 부분을 확인하지 않았다면 확인하세요.
우리가 중단 한 곳에서 계속합시다 ...
Go의 기본 데이터 유형
통사론:
var variableName type = value
다음은 Go의 기본 데이터 유형 유형입니다.
부울
bool
유형은 사전 선언된 상수 true
또는 false
로 표시되는 부울 진리값 집합을 나타냅니다. %t
를 사용하여 부울을 인쇄합니다. 예시:
var flag bool = !(10 > 0 && 20 < 40)
fmt.Printf("%t\n", flag) // false
숫자
float
유형은 없고 float32
또는 float64
만float32
의 정밀도는 소수점 이하 7자리입니다. float64
의 정밀도는 소수점 이하 15자리입니다. int16
를 int32
에 할당할 수 없으므로 이를 극복하려면 명시적 유형 변환을 수행해야 합니다. 아키텍처 종속 유형:
uint either 32 or 64 bits
int same size as uint
uintptr an unsigned integer large enough to store the uninterpreted bits of a pointer value
아키텍처 독립 유형:
uint8 the set of all unsigned 8-bit integers (0 to 255)
uint16 the set of all unsigned 16-bit integers (0 to 65535)
uint32 the set of all unsigned 32-bit integers (0 to 4294967295)
uint64 the set of all unsigned 64-bit integers (0 to 18446744073709551615)
int8 the set of all signed 8-bit integers (-128 to 127)
int16 the set of all signed 16-bit integers (-32768 to 32767)
int32 the set of all signed 32-bit integers (-2147483648 to 2147483647)
int64 the set of all signed 64-bit integers (-9223372036854775808 to 9223372036854775807)
float32 the set of all IEEE-754 32-bit floating-point numbers
float64 the set of all IEEE-754 64-bit floating-point numbers
명시적 유형 변환:
var val1 int16 = 32
var val2 int32 = int32(val1) // explicit conversion
복소수
complex(real, imaginary)
함수를 사용하여 복소수 생성 & real()
& imag()
함수를 사용하여 실수부 및 허수부 추출. %v
를 사용하여 복소수를 인쇄합니다.complex64 the set of all complex numbers with float32 real and imaginary parts
complex128 the set of all complex numbers with float64 real and imaginary parts
예시:
var cp1 = complex(1.2, 2.1)
var cp2 = complex(3.4, 5.8)
fmt.Println(real(cp1), imag(cp2)) // 1.2 5.8
fmt.Printf("%v\n", cp1 + cp2) // (4.6 + 7.9i)
성격
\u(4 hex digit)
또는 \U(8 hex digits)
사용%c
또는 %U
.byte alias for uint8, for storing ASCII characters
rune alias for int32, for storing UTF-8 characters
예시:
var char1 byte = 65 // ASCII 'A'
var char2 byte = '\x41' // ASCII 'A'
var char3 rune = '\u0041' // Unicode 'A'
var char4 rune = '\U00101234' // Unicode
fmt.Printf("%c %U\n", char1, char4) // A U+1012334
바늘
%p
를 사용하여 포인터를 인쇄합니다. 통사론:
var identifier *type = address
예시:
var num int = 6
var ptr *int = &num
fmt.Printf("%p\n", ptr) // address of num
*ptr = 20 // changes num to 20
fmt.Println(num) // 20
ptr++ // illegal, pointer arithmetic not supported
const val = 10
ptr = &val // illegal, why?
See this for why.
끈
string
는 Java에서 변경할 수 없는 것과 같은 이유로 Go에서 변경할 수 없습니다. len(str)
를 사용합니다. 예시:
var str string = "Let's Go"
fmt.Println(len(str)) // 8
var str2 string = "C:\newfolder\text.txt"
fmt.Println(str2) // C:
// ewfolder ext.txt, bcoz escape sequence
var str3 string = `C:\newfolder\text.txt` // raw string
fmt.Pritln(str3) // C:\newfolder\text.txt
연결 및 업데이트:
var a = "Hello "
var b = "world"
var c = a + b // Hello world, concatenation
a += b // Hello world, update but create new object bcoz immutability
인덱싱:
var str = "hello"
fmt.Printf("%c\n", str[0]) // h
str[0] = 'j' // illegal
슬라이싱:
var str = "hello"
fmt.Println(str[1:4]) // ell, index 1-3
fmt.Println(str[:4]) // hell, index 0-3
fmt.Println(str[1:]) // ello, index 1-end
fmt.Println(str[:]) // hello, index 0-end
fmt.Println(str[-1]) // illegal, but legal in Python
fmt.Println(str[:-1]) // illegal, but legal in Python
문자열 변환 및 함수
문자열 변환의 경우:
import "strconv"
예시:
package "main"
import "strconv"
import "fmt"
func main() {
// string to numeric
num, _ := strconv.Atoi("1234")
fmt.Println(num) // 1234 - int
fval, _ := strconv.ParseFloat("3.46", 64) // (str, floatSize)
fmt.Println(fval) // 3.46 - float64
num2, _ := strconv.ParseInt("123", 10, 64) // (str, base, intSize)
fmt.Println(num2) // 123 - int64
// numeric to string
str1 := strconv.Itoa(789)
fmt.Println(str1) // 789 - string
str2 := strconv.FormatFloat(3.45, 'f', -1, 32)
fmt.Println(str2) // 3.45 - string
str3 := strconv.FormatInt(1234, 10)
fmt.Println(str3) // 1234 - string
}
문자열 함수의 경우:
import "strings"
유용한 기능:
func Contains(s, substr string) bool
func Count(s, sep string) int
func HasPrefix(s, prefix string) bool
func HasSuffix(s, suffix string) bool
func Index(s, sep string) int
func Join(a []string, sep string) string
func LastIndex(s, sep string) int
func Repeat(s string, count int) string
func Replace(s, old, new string, n int) string
func Split(s, sep string) []string
func ToLower(s string) string
func ToUpper(s string) string
func Trim(s string, cutset string) string
이것으로 이 튜토리얼의 두 번째 부분을 마칩니다. 다음으로 Golang에 제어 구성이 있습니다. 곧...
Reference
이 문제에 관하여(숙련된 개발자를 위한 Golang - 2부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/livesamarthgupta/golang-for-experienced-developers-part-ii-2lj1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)