Golang: 데이터 유형, 변수, 상수, 포인터 및 사용자 입력

13942 단어
이전 글에서, 나는 Hello World 프로그램 설치, 초기화, 작성, 실행 프로그램, 그리고 서로 다른 운영체제에 실행 가능한 파일을 만드는 것에 대해 토론했다.
Link to my previous article on Go lang
본고에서 우리는 유형, 변수, 상수, 지침과 사용자 입력을 토론할 것이다.
데이터 형식
먼저 Go의 데이터 유형에 대해 살펴보겠습니다.

만약 우리가 일반적인 용어로 토론한다면, 우리는 bool (진위 또는 가짜), int (정정수와 음정수),float (소수점이 있는 숫자),string (문자, 문장),complex (수학 문제를 처리하지 않는 한, 허치가 있는 숫자) 가 있다.
우리는 또 무엇을 필요로 합니까?만약 운영체제의 물건을 처리하고 있다면, 다양한 크기의 프로그램을 훑어볼 수 있다.
변량
데이터 형식을 보았기 때문에, 이제 변수부터 의미가 있기 때문이다.
변수는 언제든지 변경할 수 있는 사용자 정의 저장 용기입니다.우리는 모든 변수에 어떤 이름을 붙일 수 있다. (헤헤, 그러나 의미 있는 이름을 주는 것은 좋은 방법이다.)
변수를 선언하는 구문(변수만 선언하고 값은 제공하지 않음):var <variable name> <datatype>우리는 이렇게 변수를 성명한 후에 그것에 값을 부여할 수도 있고, 성명할 때 값을 부여할 수도 있다. 이를 초기화 변수라고 한다.
변수를 초기화하는 구문:var <variable name> <datatype> = <value>나는 하나의 예로 나를 소개할 것이다.
package main

import "fmt"

func main(){
    var myName string // just declaring a string variable
    var myAge int = 20 // Initializing an int variable with value 20
    myName = "Chiranjeevi" // Now assigning value to the above declared variable
    fmt.Println("My name is ", myName) // We can print variables along with a string like this
    fmt.Print("My age:")
    fmt.Print(myAge) // We can also print it individually
    // Println and Print has nothing to do with variables, 
    //Println prints in new line and Print prints in same line.
}
이상은 변수를 처리하는 실제 방법이다.하지만 우리도 다른 방식으로
우리는 초기화할 때 변수의 유형을 지정할 필요가 없다.
package main

import "fmt"

func main(){
    var marksInOS int = 98 // explicitly mentioning datatype
    var marksInDBMS = 99 // not mentioning datatype explicitly
    // They both are of same type
    // You can check by printing their datatypes
    fmt.Printf("Datatype of marksInOS is %T", marksInOS)
    fmt.Printf("Datatype of marksInDBMS is %T", marksInDBMS)
}
좀 더 간단하게 하자. 우리는 심지어 쓸 필요가 없다.키워드.
나는 너의 마음속 느낌을 안다.
너: "너는 왜 단도직입적으로 말하지 않니?"
나: "이것이 바로 프로그래밍을 배우는 방식"
다른 한편, 매사에 자신의 용례가 있다.그래서 모든 방법을 아는 것이 좋다.
이제 본론으로 돌아가자.
var 키워드를 사용하지 않기 위해서, "walrus"조작부호라는 특수 조작부호를 사용해야 합니다.그것은 보기에 ": ="과 같다.
수학자들은 이 말을 보고 "헤이, 친구야, 나는 너를 안다."라고 말했다.
네, 수학에서도 값을 부여하는데, Go lang에서도 마찬가지입니다.
기억해야 할 점은walrus 연산자는 전역 범위 (함수 외부) 에 사용할 수 없다는 것이다.그것은 기능 범위 내에서 사용할 수 있다.
변수에 대한 마지막 예:
package main

func main(){
    var email string = "[email protected]"
    var name = "chiranjeevi"
    age := 20 // walrus : let's chill
}
상수
상수는 변수와 같이 사용자가 정의한 저장 용기이지만 초기화한 후에는 변경할 수 없습니다.
만약 우리가 반경에 주어진 원의 면적을 계산하기 위해 프로그램을 짜고 있다면.우리는 3.14 또는 22/7의 파이가 필요하다.떡그림값은 변경할 필요가 없습니다. 어떤 원에도 마찬가지입니다.
이 장면에서 우리는 이 값들을 상수로 저장한다.
상수를 초기화하는 구문:var변수와 마찬가지로 우리는 데이터 형식을 지정할 필요가 없다.const <constant name> <datatype> = <value>예를 들면 다음과 같습니다.
package main

import "fmt"

func main(){
    const pie = 3.14
    radius := 5
    area := pie * radius * radius
    fmt.Println("Area of circle with radius 5 is ", area)
}
포인터
우리는 이 간단한 화제를 복잡하게 하지 말자.
무엇이 지침입니까?
포인터는 다른 변수의 주소를 저장하는 변수입니다.
그것은 어떤 변수의 주소를 저장할 수 있습니까?아뇨.
변수에 데이터 형식이 있는 것처럼 바늘에도 데이터 형식이 있다.바늘은 bool, int,float 등 종류가 될 수 있습니다.
유형 포인터는 같은 유형의 변수의 주소를 저장할 수 있다.다른 데이터 형식 변수의 주소를 저장할 수 없습니다.
선언 포인터의 구문:const <constant name> = <value>"*"는 포인터를 선언하고 있음을 나타냅니다.
예:
func main(){
    var ptr *int 
    // Here ptr is the name that we have given to the pointer.
    // Our ptr pointer is of type int
}
어떻게 변수의 주소를 얻습니까?
우리는 변수 이름 앞에서 기호 (&) 연산자를 사용하여 변수의 주소를 얻을 수 있다.var <pointer name> *<datatype>가령 우리가num이라는 int 형식 변수를 초기화했다면, 그 값은 10이다.이제 num의 주소를 ptr 포인터에 저장합니다.
import "fmt"

func(){
    var num int = 10
    var ptr *int = &num
    fmt.Println("The address stored in ptr is ", ptr)
    // To see the address stored in ptr which is the address of num.
}
우리 한 장면을 가설합시다.
fun1이라는 함수에서 코드를 작성하고 있습니다.다른 fun2라는 함수에 접근할 수 있습니다. 현재 함수fun1에서 이 함수를 호출할 수 있습니다.너는 fun2의 주체를 모르지만, 변수의 주소로 되돌아오는 것을 알고 있다.지금 이걸 fun2 in fun1이라고 하는 거야?알다시피,fun2는 주소를 되돌려줍니다. 되돌려주는 내용을 바늘에 저장해야 합니다.PTr라는 포인터에 저장한다고 가정하십시오.ptr에 저장된 주소의 값을 어떻게 보십니까?
별표(*) 연산자를 사용하여 포인터에 저장된 주소의 값을 볼 수 있습니다.
위 장면에서 *ptr는 ptr에 저장된 주소의 값을 제공합니다.값만 얻는 것이 아니라, 이 연산자를 사용하여 주소의 값을 변경할 수도 있습니다.나는 네가 지침이 어떻게 유용한지 이해하길 바란다.
import "fmt"

func(){
    var num int = 10
    fmt.Println("Value of num is ", num)
    var ptr *int = &num // Assigning address of num to ptr
    fmt.Println("Address stored in ptr is ", ptr)
    fmt.Println("Value at address stored in ptr is ", *ptr)
    // We can even change the value present at that address
    *ptr = *ptr * 2 // This would change the value present at address stored in ptr
    fmt.Println("After changing....")
    fmt.Println("Value at address stored in ptr is ", *ptr)
    fmt.Println("Value of num is ", num)
    // The value of num changes as the address stored in ptr is the address of num
    // which we changed
}
왜 우리는 이런 주소가 필요합니까?문제일 수도 있어.
우리 또 다른 작은 장면을 가설합시다.사용자로부터 입력을 받고 있습니다.당신은 그것을 어디에 보관합니까?기억 속에모든 메모리 위치에 주소가 있습니다.그래서 어떤 물건을 저장하기 위해서 우리는 주소를 처리해야 한다.
실제로 우리는 자바, 자바스크립트, 파이썬 등 언어에서 이렇게 하지 않았다. 자바 프로그램을 실행하려면 JRE가 필요하고, 파이썬 해석기가 필요하며, 자바스크립트를 실행하려면 NodeJS가 필요하고, 자바스크립트가 백엔드에서 메모리를 처리하기 때문에 우리는 열심히 일할 필요가 없다.그러나 Go는 런타임 환경을 실행하기를 원하지 않습니다.그래서, 어, 우리는 스스로 그들을 돌볼 필요가 있어.
아직도 해결해야 할 많은 다른 상황이 있다.하지만 이제 이 정도면 충분해.
사용자 입력
모든 프로그래밍 언어에서 사용자의 입력을 받아들이는 것은 필수적이다.그럼, 이렇게 합시다.
우리는 'fmt' 패키지의 함수를 사용하여 화면에 물건을 인쇄합니다.이와 유사하게'fmt'에도 사용자의 입력을 받는 기능이 있다.
입력을 가져오는 함수는 "Sscanln"입니다.그것은 사용자에게 입력 알림을 제공한다.사용자가 enter를 클릭할 때까지 모든 내용을 입력으로 간주합니다.기본적으로 전체 선은 모두 입력이다.우리는 데이터를 저장하는 변수의 주소를 제시해야 한다.주소, 즉 포인터를 참조하십시오.
구문:var <pointer name> *<datatype> = &<other variable name>사용자 입력을 통해 위의 원형 영역 프로그램을 완성해서 본문을 완성합시다.
package main

import "fmt"

func main(){
    const pie = 3.14 // Constant
    fmt.Println("Enter the radius of cirlce: ") // Printing to screen
    var radius int // Variable
    fmt.Sscanln(&radius) // Address and taking input
    var area = pie * radius * radius // Calculation
    fmt.Println("The area of circle is ", area) // Printing to screen
}
결말
이번엔 이렇게 됐어.다음 글은 유형 전환, 쉼표 오류 문법, 시간 패키지, 메모리 관리 등을 소개한다.
나의 사교:
Showwcase

좋은 웹페이지 즐겨찾기