درس چهارم برنامه نویسی گولنگ

درس چهارم برنامه نویسی گولنگ

درس چهارم برنامه نویسی گولنگ در مورد معرفی نوع داده وآرایه و برش‌ها است. این موارد بخش مهمی در مفاهیم هر زبان می‌باشند و باید به آن ها توجه داشت. برای یادگیری زبان برنامه نویسی گولنگ کافیست به سایت آموزش برنامه نویسی در کرج سر بزنید.

نوع داده‌ها

نوع داده یک مفهوم مهم در برنامه نویسی است. نوع داده، اندازه و نوع مقادیر متغیر را مشخص می‌کند. Go به صورت ایستا تایپ می‌شود، به این معنی که وقتی یک نوع متغیر تعریف شد، فقط می‌تواند داده‌هایی از آن نوع را ذخیره کند.

package main

import (“fmt”)

}()func main

  var a bool = true    // Boolean

  var b int = 5        // Integer

  var c float32 = 3.14 // Floating point number

  var d string = “Hi!” // String

  fmt.Println(“Boolean: “, a)

  fmt.Println(“Integer: “, b)

  fmt.Println(“Float:   “, c)

  fmt.Println(“String:  “, d)

{

 

درس چهارم برنامه نویسی گولنگ

سه نوع داده اصلی در GO :

۱) bool یک مقدار بولی را نشان می دهد که مقادیر نشان داده در دو حالت درست یا نادرست است.

یک نوع داده بولی با کلمه کلیدی bool اعلام می شود و فقط می تواند مقادیر true یا false را بگیرد. مقدار پیش فرض یک نوع داده بولی false است.

۲) عددی  (numeric): نشان دهنده انواع عدد صحیح، مقادیر ممیز شناور و انواع پیچیده است.

انواع داده عدد صحیح  در گولنگ

انواع داده‌های عدد صحیح برای ذخیره یک عدد کامل بدون اعشار، مانند 35، 50- یا 1345000 استفاده می شود.

نوع داده عدد صحیح دارای دو دسته است:

Signed integers  – می‌توانند مقادیر مثبت و منفی را ذخیره کنند.

Unsigned integers  – فقط می‌توانند مقادیر غیر منفی را ذخیره کنند.

نکته: نوع پیش فرض عدد صحیح int است. اگر یک نوع را مشخص نکنید، نوع آن int خواهد بود.

انواع داده شناور

انواع داده های شناور برای ذخیره اعداد مثبت و منفی با نقطه اعشار مانند 35/3، 2/34- یا 3597/34987 استفاده می‌شود. نوع داده شناور دارای دو کلمه کلیدی است:

Range

 

 

Size

Type
-3.4e +38 to 3.4e +38 32 Bit float32
-1.7e+308 to 1.7+308 64 Bit float64

 

نکته: نوع پیش فرض float float64 است. اگر نوع را مشخص نکنید، نوع float64 خواهد بود.

۳) String یک مقدار رشته را نشان می دهد.

نوع داده رشته ای برای ذخیره دنباله ای از کاراکترها (متن) استفاده می شود. مقادیر رشته ها باید با دو نقل قول”” قرار بگیرد.

آرایهها

آرایه‌ها برای ذخیره چندین مقدار از یک نوع در یک متغیر استفاده می‌شوند، به‌جای این‌که برای هر مقدار متغیرهای جداگانه اعلام کنند.

در Go دو راه برای اعلام آرایه وجود دارد:

۱) با کلمه var

Syntax

var array_name = [length]datatype{values} // here length is defined
or
var array_name = […]datatype{values} // here length is inferred

 

۲) با علامت =:

Syntax

array_name := [length]datatype{values} // here length is defined
or
array_name := […]datatype{values} // here length is inferred

 

نکته: length تعداد عناصر ذخیره شده در آرایه را مشخص می‌کند. در Go، آرایه ها طول ثابتی دارند. طول آرایه یا با یک عدد تعریف می شود یا استنباط می شود ( به این معنی که کامپایلر بر اساس تعداد مقادیر، طول آرایه را تعیین می‌کند).

package main
import (“fmt”)

}()func main
var arr1 = [3]int{1,2,3}
arr2 := [5]int{4,5,6,7,8}

fmt.Println(arr1)
fmt.Println(arr2)
{

درس چهارم برنامه نویسی

۱)دسترسی به عناصر یک آرایه

می توانید با مراجعه به شماره فهرست به یک عنصر آرایه خاص دسترسی پیدا کنید. در Go، شاخص‌های آرایه از 0 شروع می‌شوند. این بدان معناست که [0] اولین عنصر، [1] عنصر دوم است، و غیره

۲) تغییر عناصر یک آرایه

می توانید مقدار یک عنصر آرایه خاص را با مراجعه به شماره شاخص تغییر دهید.

این مثال نحوه تغییر مقدار عنصر سوم در آرایه قیمت ها را نشان می دهد:

package main
import (“fmt”)

}()func main
prices := [3]int{10,20,30}

prices[2] = 50
fmt.Println(prices)
{

۳) مقداردهی اولیه آرایه

اگر یک آرایه یا یکی از عناصر آن در کد مقداردهی اولیه نشده باشد، مقدار پیش فرض نوع آن به آن اختصاص داده می‌شود.

نکته: مقدار پیش‌فرض برای int صفر و مقدار پیش‌فرض رشته “” است.

۴) مقداردهی عناصر خاص

می‌توان فقط عناصر خاصی را در یک آرایه مقداردهی اولیه کرد.

۵) پیدا کردن طول یک آرایه.

تابع len() برای یافتن طول یک آرایه استفاده می شود:

package main
import (“fmt”)

}()func main
arr1 := [4]string{“Volvo”, “BMW”, “Ford”, “Mazda”}
arr2 := […]int{1,2,3,4,5,6}

fmt.Println(len(arr1))
fmt.Println(len(arr2))
{

 

برش ها (Slices)

برش ها شبیه آرایه ها هستند، اما قدرتمندتر و انعطاف پذیرتر هستند. مانند آرایه ها، برش ها نیز برای ذخیره چندین مقدار از یک نوع در یک متغیر استفاده می شوند. با این حال، بر خلاف آرایه‌ها، طول یک برش می‌تواند رشد کند و به دلخواه شما کوچک شود.

در Go، چندین راه برای ایجاد یک برش وجود دارد:

با استفاده از قالب []datatype{values}

ایجاد یک برش از یک آرایه

با استفاده از تابع make()

ایجاد یک برش با []datatype{values}

Syntax

slice_name := []datatype{values}

 

یک روش رایج برای اعلام یک برش به این صورت است:

myslice := []int{}

کد بالا یک برش خالی با طول 0 و ظرفیت 0 را اعلام می کند.

برای مقداردهی اولیه برش در حین اعلان، از این استفاده کنید:

myslice := []int{1,2,3}

کد بالا تکه ای از اعداد صحیح را به طول 3 و همچنین ظرفیت 3 را اعلام می کند.

در Go، دو تابع برای برگرداندن طول و ظرفیت یک برش وجود دارد:

تابع len() – طول برش (تعداد عناصر موجود در برش) را برمی‌گرداند.

تابع cap() – ظرفیت برش را برمی گرداند (تعداد عناصری که برش می تواند رشد کند یا کوچک شود)

package main
import (“fmt”)

}()func main
myslice1 := []int
fmt.Println(len(myslice1))
fmt.Println(cap(myslice1))
fmt.Println(myslice1)

myslice2 := []string{“Go”, “Slices”, “Are”, “Powerful”}
fmt.Println(len(myslice2))
fmt.Println(cap(myslice2))
fmt.Println(myslice2)
{

درس چهارم برنامه نویسی گولنگ

در مثال بالا می بینیم که در برش اول  (myslice1) عناصر واقعی مشخص نشده اند، بنابراین هم طول و هم ظرفیت برش صفر خواهد بود. در برش دوم  (myslice2) عناصر مشخص شده اند و طول و ظرفیت هر دو برابر تعداد عناصر واقعی مشخص شده است.

یک برش از یک آرایه ایجاد کنید

می توانید با برش دادن یک آرایه یک برش ایجاد کنید:

Syntax

var myarray = [length]datatype{values} // An array
myslice := myarray[start:end] // A slice made from the array

در مثال بالا myslice یک برش به طول 2 است. از arr1 ساخته شده است که یک آرایه با طول 6 است.

برش از عنصر سوم آرایه که دارای مقدار 12 است شروع می شود (به یاد داشته باشید که شاخص های آرایه از 0 شروع می شوند. این بدان معنی است که [0] عنصر اول، [1] عنصر دوم و غیره است). برش می تواند تا انتهای آرایه رشد کند. یعنی ظرفیت برش 4 است.

اگر myslice از عنصر 0 شروع شود، ظرفیت برش 6 خواهد بود.

با تابع make() یک Slice ایجاد کنید

تابع make() همچنین می تواند برای ایجاد یک برش استفاده شود.

Syntax

slice_name := make([]type, length, capacity)

 

نکته: اگر پارامتر ظرفیت تعریف نشده باشد برابر طول خواهد بود.

این مثال نحوه ایجاد برش ها را با استفاده از تابع  make() نشان می دهد:

package main
import (“fmt”)

}()func main

  myslice1 := make([]int, 5, 10)
fmt.Printf(“myslice1 = %v\n”, myslice1)
fmt.Printf(“length = %d\n”, len(myslice1))
fmt.Printf(“capacity = %d\n”, cap(myslice1))

// with omitted capacity
myslice2 := make([]int, 5)
fmt.Printf(“myslice2 = %v\n”, myslice2)
fmt.Printf(“length = %d\n”, len(myslice2))
fmt.Printf(“capacity = %d\n”, cap(myslice2))
{

دسترسی، تغییر، ضمیمه و کپی برش

دسترسی به عناصر یک برش

با مراجعه به شماره فهرست می توانید به یک عنصر برش خاصی دسترسی داشته باشید.

 

در Go، ایندکس ها از 0 شروع می شوند. یعنی [0] اولین عنصر، [1] عنصر دوم و غیره است.

این مثال نحوه دسترسی به عناصر اول و سوم در برش قیمت ها را نشان می دهد:

تغییر عناصر یک برش

همچنین می توانید با مراجعه به شماره فهرست، یک عنصر برش خاص را تغییر دهید.

عناصر را به یک برش اضافه کنید

با استفاده از تابع append() می توانید عناصر را به انتهای یک برش اضافه کنید:

Syntax

slice_name = append(slice_nameelement1element2, …)

 

برای دیدن آموزش درس پنجم برنامه نویسی گولنگ اینجا کلیک کن.

فهرست مطالب