ডেভসংকেত

গো

গো একটি স্ট্যাটিকালি টাইপ করা এবং সংকলিত প্রোগ্রামিং ল্যাঙ্গুয়েজ যেটি টেক জায়ান্ট গুগলের তিন জন প্রোগ্রামার ডিজাইন করেছে। গো ল্যাঙ্গুয়েজ সিনট্যাক্টিক্যালি সি ল্যাঙ্গুয়েজ এর সমান কিন্তু এর ম্যামরি সেফটি, আবর্জনা সংগ্রহ, কাঠামোগত টাইপিং এর দিক দিয়ে এটি অনেক ভালো পারফর্ম করে।

কন্ট্রিবিউটর

  • zubayerhimel

শেয়ার করুন

ফাইল ফরম্যাট

  • ফাইল এক্সটেনশন

    FileName.go
  • ফাইল রান করা

    go run FileName.go
  • এক্সেকিউটেবল ফাইল তৈরি করা

    go build FileName.go
  • এক্সেকিউটেবল ফাইল রান করা

    ./FileName
  • বিন ফোল্ডার এর মধ্যে ফাইল বিল্ড করা

    go install <package path>

ভার অথবা কন্সট্যান্ট ব্লক তৈরি করা

  • var (
  •    count int = 0
  •    msg string = "Hello"
  •    amount float32 = 45.6
  • )
  • const (
  •    count int = 0
  •    msg string = "Hello"
  •    amount float32 = 45.6
  • )

এরে

  • নতুন একটি এরে তৈরি করা

    numbers := [3]int{12, 32, 43}
  • এরে সাইজ ডিক্লেয়ার না করে এরে তৈরি করা

    grades := [...]int{23, 54, 33, 90]
  • ফাঁকা এরে তৈরি করা

    var students [3]string
  • এরের কোন ইনডেক্স এ ভ্যালু সেট করা

    students[0] = "John"
  • এরের সাইজ বের করা

    len(students)
  • বিল্ট-ইন ফাংশান দিয়ে এরে তৈরি করা এবং সব ভ্যালু শূন্য সেট করা

    a := make([]int, 3) 
     // [0 0 0]

ইফ এলস স্টেট্ম্যান্ট

  • ইফ এলস

    if condition {} else {}
  • ইফ এলস এর উদাহরণ

    if age < 18 {fmt.Println("You are underage."} else {"You are matured."}
  • ইফ এলস এলস ইফ এর উদাহরণ

    if age < 18 {fmt.Println("You are underage."} else if age == 18 {"You are good to go."} else {"You are over aged."}
  • বুলিয়ান ইফ স্টেট্ম্যান্ট

    if true {fmt.Println("This is true"} 
     // This is true
  • বুলিয়ান ইফ স্টেট্ম্যান্ট (2)

    if false {fmt.Println("This is true"} 
     // কিছু দেখাবে না। কারণ মিথ্যা হলে পরের লাইন এক্সেকিউট হয় না

সুইচ স্ট্যাট্ম্যান্ট

  • switch 2 {
  • case 1: 
    	 fmt.Println("One"}
  • case 2: 
    	 fmt.Println("Two"}
  • default: 
    	 fmt.Println("none"}

ফাংশান

  • আর্গুমেন্ট ছাড়া কোন একটি ফাংশান তৈরি করা

    func message(){}
  • আর্গুমেন্ট সহ ফাংশান তৈরি করা

    func greeting(msg string, nmbr int){}
  • বেনামি ফাংশান

    func () {}()

ফরম্যাট স্ট্রিং

  • ডিফল্ট ফরম্যাট এ ভ্যালু দেখা

    %v
  • ভ্যারিয়েবল এর টাইপ দেখা

    %T
  • বুলিয়ান true false প্রিন্ট করা

    %t
  • ক্যারেক্টার প্রিন্ট করা

    %c
  • বেইজ ১০ এ ভ্যারিয়েবল প্রিন্ট করা

    %d
  • বেইজ ৮ এ ভ্যারিয়েবল প্রিন্ট করা

    %o
  • বেইজ ১৬ তে ছোট অক্ষর (a-f) এর ভ্যারিয়েবল প্রিন্ট করা

    %x
  • বেইজ ১৬ তে বড় অক্ষর (A-F) এর ভ্যারিয়েবল প্রিন্ট করা

    %X

ফাইল প্রিন্ট করা এবং ভ্যারিয়েবল ডিক্লেয়ার করা

  • নিচের লাইন ফাঁকা রেখে কিছু প্রিন্ট করা

    fmt.Println("hello world")
  • নিচের লাইন না ফাঁকা রেখে কিছু প্রিন্ট করা

    fmt.Print("hello world")
  • ইউজার এর থেকে ইনপুট নেয়া

    var name string 
     fmt.Scanln(&name)
  • স্ট্রিং ফরম্যাট করে প্রিন্ট করা

    var a = 10 fmt.Printf("%v", a)
  • ভ্যালু না দিয়ে ভ্যারিয়েবল ডিক্লেয়ার করা

    var a int
  • ভ্যালু দিয়ে ভ্যারিয়েবল ডিক্লেয়ার করা

    var a int = 10 / var a = 10
  • কোন ধরনের ডেটা টাইপ সেটা কম্পাইল টাইমে বুঝে নেয়া

    a := 10 / msg := "Hello there!!!"
  • ইন্টেজার ভ্যারিয়েবল ডিক্লেয়ার করা

    var a int = 20
  • ফ্ল্যোট ভ্যারিয়েবল ডিক্লেয়ার করা

    var b float32 = 23.30
  • স্ট্রিং ভ্যারিয়েবল ডিক্লেয়ার করা

    var b string = "Hello Programmer"
  • বুলিয়ান ভ্যারিয়েবল ডিক্লেয়ার করা

    var b bool = true
  • কন্সট্যান্ট ভ্যারিয়েবল ডিক্লেয়ার করা

    const Phi = 1.618

টাইপ কনভার্শন

  • ভ্যারিয়েবল এর টাইপ দেখা

    a := 45 
     fmt.Printf("%T", a) 
     // int
  • ইন্টিজারকে ফ্ল্যোট এ রূপান্তর করাs

    var i int = 45 
     var j float 32 
     j = float32(i)
  • ফ্ল্যোট কে ইন্টিজার এ রূপান্তর করা

    var i float32 = 45.23 
     var j int 
     j = int(i)
  • ইন্টিজারকে স্ট্রিং এ রূপান্তর করা

    var i int = 45 
     var j float 32 
     j = strconv.Itoa(i)

ম্যাপ

  • একটি ফাঁকা ম্যাপ তৈরি করা

    population := map[string]int{}
  • বিল্ট ইন ম্যাপ ফাংশান দিয়ে ম্যাপ তৈরি করা

    population := make(map[string]int)
  • একটি ভ্যালু সহ ম্যাপ তৈরি করা

    population := map[string]int{
    	 "dhaka" : 3000323,
    	 "chattagram" : 2000353, 
    	 "sylhet" : 1005423, 
    	 "khulna" : 3000323, }
  • ম্যাপ এর কোন একটি ভ্যালু দেখা

    population["dhaka"] 
     // 3000323
  • ম্যাপ এ নতুন কোন ভ্যালু যোগ করা

    population["rajshahi"] = 1203839
  • ম্যাপ থেকে কোন ভ্যালু মুছে ফেলা

    delete(population, "dhaka")
  • ম্যাপ এর লেন্থ বের করা

    len(population)

স্ট্রাক্ট

  • type Doctor struct {
  •    number int
  • actorName string
  • }
  • aDoctor := Doctor {
  •    number: 3,
  • actorName: "Jon Pertwee",
  • }
  • fmt.Println(aDoctor)

লুপ

  • ফর লুপ

    for i:= 0; i < 10; i++ {
    	 fmt.Println(i) 
     }
  • লুপের বাইরে ভ্যারিয়েবল ইনিশিয়ালাইজ করে ফর লুপ তৈরি করা

    i := 0
     for ; i < 10; i++ { 
     fmt.Print(i) 
    }
  • এরের উপর ফর লুপ চালানো/ রেঞ্জ

    for k, v := range s {} 
    // এখানে k হচ্ছে key, v হচ্ছে value এবং s হচ্ছে এরের নাম
  • হোয়াইল এর মত ফর লুপ ব্যবহার করা

    for condition {}

পয়েন্টার

  • একটি পয়েন্টার তৈরি করা

    a := 5 
     b := &a // পয়েন্টার এড্রেস তৈরি করতে ভ্যারিয়েবল এর আগে & চিহ্ন দেয়া লাগে
  • পয়েন্টার এড্রেস থেকে ভ্যালু নেয়া

    c := *b //
  • পয়েন্টার দিয়ে ভ্যারিয়েবল এর ভ্যালু পরিবর্তন করা

    a := 5 
     b := &a
     *b = 10