تعلم لغة البرمجة جو من البداية الى الاحتراف
Learn programming language go from beginning to professionalism
Learn programming language go/golang from beginning to professionalism

احسن واسهل محرر اطن هو Visual Studio Code
و المفكرة من ويندوز تستطيع الكتابة بها وحفظ الملف بالامتداد go
مثلا:
variablego1.go
وتشغيل برنامج cmd الذهاب الى المكان الذي تحفظ فيه ملفات go
وتكتب الامر:
go run variablego1.go

---------------------------
---------------------------

المتغيرات وطريقة التصريح(الاعلان) بها
و اسناد قيم لها في لغة جو Go

---
مثال:
//
package main
import "fmt"
func main(){
s:="a123"
var s1 string
var s2="b456"
var s3 string ="h789"
s1="string"
var f1 float32
var f2 float64
f1=2.5
f2=250.75
var b1 bool
b1=true
b2:=false
fmt.Println(s,s1,s2,s3,f1,f2,b1,b2)
}

----------------------------------------
----------------------------------------

الثوابت اسناد القيم لها في لغة جو Go
الثوابت لايمكن تغيرها
مثال:

// constantsgo1.go

package main

import "fmt"

func main () {
const(
s = "Hello!"
i = 7
r = 2.5
)
const w="Welcome!"
fmt.Println(s,i,r,w)
}

----------------------------------------
----------------------------------------

طباعة الجمل والكلمات في سطر واحد في لغة جو Go
مثال:
// Printgo1.go
package main

import "fmt"

func main () {
fmt.Print("hello!")
fmt.Print("2021")
}

----------------------------------------
----------------------------------------

طباعة الجمل والكلمات في لغة جو Go
مثال:

// printlngo0.go
package main

import (
   "fmt"
)

func main () {
const s1 = "ali"

fmt.Println(s1)
}

----------------------------------------
----------------------------------------

قرآة رقم من لوحة المفاتيح في لغة جو Go
طريقة كتابة تعليمات البرمجية في سطر واحد
مثال:

// scango1.go
package main

import "fmt"

func main () {
var a int
fmt.Print("Enter a number : ");  fmt.Scan(&a); fmt.Print(" The number is ",a)
}

----------------------------------------
----------------------------------------
عملية الجمع في لغة جو Go
برنامج لجمع عددين في لغة جو Go

مثال:

// addition01.go

package main

import (
"fmt"
)

func main() {
var x,y int
fmt.Print("Enter number one : ")
fmt.Scanln(&x)
fmt.Print("Enter number two : ")
fmt.Scanln(&y)
fmt.Println(" Result : ",x+y)
}

----------------------------------------
----------------------------------------

عملية الجمع في لغة جو Go
برنامج لجمع عددين في لغة جو Go

مثال:

// additiongo1.go

package main

import (
"fmt"
)

func main() {
var x,y int
fmt.Print("Enter number one : ")
fmt.Scanln(&x)
fmt.Print("Enter number two : ")
fmt.Scanln(&y)
o:=x+y
fmt.Println(" Result : ",o)
}

----------------------------------------
----------------------------------------
عمل دالة في لغة جو Go
دالة او اجراء تابع
وهذه الدالة تقوم بجمع عددين وارجاع النتيجة الى الدالة الرئيسية
مثال:

// functiongo1.go
package main
import "fmt"

func main () {
fmt.Println(add(7,5))
}

func add(x int, y int) int {
return x+y
}

----------------------------------------
----------------------------------------
عمل دالة في لغة جو Go
دالة او اجراء تابع
وهذه الدالة تقوم بجمع وطرح عددين وارجاع النتيجتين
لم ار لغة تفعل مثل هذا الا لغة جو Go
مثال:

// functiongo2.go
package main
import "fmt"

func add_minus(x int, y int) (int,int) {
return x+y,x-y
}

func main () {
fmt.Println(add_minus(7,5))
}

----------------------------------------
----------------------------------------

المصفوفات تعامل معهم في لغة جو Go
المصفوفة هي مجموعة من القيم من نفس نوع
هذه مصفوفة احادية من نوع السلاسل الحرفية والرقمية
مثال:

//  arraysgo1.go
package main

import "fmt"

func main () {

var names[3] string
names[0]="ali"
names[1]="ahmed"
names[2]="saad"

for i:=0; i<len(names); i++ {
   fmt.Println(names[i])
}
fmt.Println(names[1])
fmt.Println(len(names))
}

----------------------------------------
----------------------------------------

المصفوفات تعامل معهم في لغة جو Go
المصفوفة هي مجموعة من القيم من نفس نوع
هذه مصفوفة احادية من نوع السلاسل الحرفية والرقمية وتعامل معها مختلف بنسب للقرآة
مثال:

//  arraysgo2.go
package main

import "fmt"

func main () {

var names[3] string
names[0]="ali"
names[1]="ahmed"
names[2]="saad"

for i:=range names {
   fmt.Println(names[i])
}

fmt.Println(names[0:3])

fmt.Println(names[1])
fmt.Println(len(names))
}

----------------------------------------
----------------------------------------

المصفوفات الرقمية  تعامل معهم في لغة جو Go
المصفوفة هي مجموعة من القيم من نفس نوع
هذه مصفوفة احادية من نوع الاعداد الصحيحة اي الرقمية
مثال:

package main
import "fmt"

func main () {

arr1 := [3]int{1,2,3}
for i, value := range arr1{
    fmt.Println(value,i)
}
}

----------------------------------------
----------------------------------------

المصفوفات الرقمية تعامل معهم في لغة جو Go 2
المصفوفة هي مجموعة من القيم من نفس نوع
هذه مصفوفة احادية من نوع الاعداد الصحيحة اي الرقمية
مثال:

package main
import "fmt"

func main () {

arr1 := [ 3 ] int { 7, 250, 100 }
for _, value := range arr1 {
    fmt.Println(value)
}
}

----------------------------------------
----------------------------------------

المصفوفات الاحادية تعامل معهم في لغة جو Go
المصفوفة هي مجموعة من القيم من نفس نوع
هذه مصفوفة احادية من نوع السلاسل الحرفية والرقمية
وطريقة اسناد القيم مختلفة
مثال:

package main
import "fmt"

func main () {

arr1 := [ 3 ] string { "ali", "mahmod", "khaled" }
for _, value := range arr1 {
    fmt.Println(value)
}
}
----------------------------------------
----------------------------------------

المصفوفات الاحادية تعامل معهم في لغة جو Go 2
المصفوفة هي مجموعة من القيم من نفس نوع
هذه مصفوفة احادية من نوع السلاسل الحرفية والرقمية
طريقة اسناد القيم مختلفة ولتوضيح اكثر
مثال:

package main
import "fmt"

func main () {

arr1 := [ 3 ] string { "ali", "mahmod", "khaled" }
for i, value := range arr1 {
    fmt.Println(value, i)
}
}

----------------------------------------
----------------------------------------

المصفوفات الثنائية البعد تعامل معهم في لغة جو Go
المصفوفة هي مجموعة من القيم من نفس نوع
هذه مصفوفة ثنائية من نوع السلاسل الحرفية والرقمية
مثال:

package main
import "fmt"

func main () {

arr1 := [3][3]string{
    {"faicel", "mahmoud", "khaled"},
    {"saadi", "gembel", "kemal"},
    {"khaled", "ahmed", "ferid"},
}
for _, value := range arr1 {
    fmt.Println(value)
}
}

----------------------------------------
----------------------------------------

تجاوز قيمة من حلقة تكرارية في لغة جو Go
لتجاوز قيمة من حلقة تكرارية استعمل الامر continue
مثال:

// continuego1.go

package main

import "fmt"

func main(){

for i:=0; i < 10; i++ {
  if i == 5 {
   continue
  }
  fmt.Println("Value is ",i)
}
}

----------------------------------------
----------------------------------------

وقف حلقة تكرارية عند بلوغها قيمة معينة في لغة جو Go
لوقف حلقة تكرارية عند بلوغها قيمة معينة استعمل الامر break
مثال:

// breakgo1.go

package main

import "fmt"

func main(){
i:=0;
for i < 10 {
  if i == 5 {
   break
  }
  fmt.Println("Value is ",i)
  i = i + 1
}
}

----------------------------------------
----------------------------------------

الحلقات التكرارية المتدخلة في لغة جو Go
مثال:

// fordgo1.go
package main

import "fmt"

func main () {
fmt.Println()
for i := 1; i <= 5; i++ {
  fmt.Print("#")
  for j := 1; j <= 5; j++ {
   fmt.Print("*")
  }
  fmt.Println("#")
}
}
----------------------------------------
----------------------------------------

الحلقات التكرارية في لغة جو Go
الحلقات التكرارية تدور من 1 الى 5
مثال:

// forgo1.go
package main
import "fmt"
func main(){
for i:=0; i<5; i++ {
fmt.Println("Value is ",i)
}
}

----------------------------------------
----------------------------------------

الحلقات التكرارية في لغة جو Go 2
هذه الحلقات التكرارية تدور من 1 الى 5 ومختلفة تشبه ويلwhile في لغات اخرى
مثال:

// forgo2.go
package main
import "fmt"
func main(){
i:=0;
for i<5{
  fmt.Println("Value is ",i)
  //i++
  //i+=1
  i = i + 1
}
}

----------------------------------------
----------------------------------------

عمل شرط بif في لغة جو Go

مثال:

// ifgo1.go
package main
import "fmt"
func main(){

i:=7
if i==7 {
fmt.Println("i=",i)
}else{
fmt.Println("i<7 or i>7")
}
}

---------------------------------------------
---------------------------------------------

اداة اختيار switch من نوع عدد صحيح في لغة جو Go
اداة الاختيار switch يتم من خلالها اختيار واحد من مجموعة من الاخيارات
-
هنا يتم اختيار الرقم 4 وهو الذي ادخلناه في البداية

package main

import "fmt"

func main() {
var number int = 4
switch number {
case 1: fmt.Println("A number is 1")
case 2: fmt.Println("A number is 2")
case 3: fmt.Println("A number is 3")
case 4: fmt.Println("A number is 4")
case 5: fmt.Println("A number is 5")
case 6: fmt.Println("A number is 6")
case 7: fmt.Println("A number is 7")
default:
    fmt.Println("It is default:")
}
}

---------------------------------------------
---------------------------------------------

اداة اختيار switch من نوع سلسلة حرفية في لغة جو Go
اداة الاختيار switch يتم من خلالها اختيار واحد من مجموعة من الاخيارات
-
هنا يتم اختيار الخيار توtwo وهو الذي ادخلناه في البداية

package main

import "fmt"

func main() {
var sq string = "two"
switch sq {
case "one": fmt.Println("string is one")
case "two": fmt.Println("string is two")
case "three": fmt.Println("string is three")
case "four": fmt.Println("string is four")

default:
    fmt.Println("string is default:")
}

        fmt.Println("Hello")
}
}

---------------------------------------------
---------------------------------------------

اداة اختيار switch من نوع منطقي بولـيا في لغة جو Go
اداة الاختيار switch يتم من خلالها اختيار واحد من مجموعة من الاخيارات
-
هنا يتم اختيار الخيار تروtrue وهو الذي ادخلناه في البداية

package main

import "fmt"

func main() {
var bq bool = true
switch bq {
case true: fmt.Println("bool is true")
case false: fmt.Println("bool is false")

default:
    fmt.Println("bool is default:")
}

}

---------------------------------------------
---------------------------------------------

اداة اختيار switch من نوع منطقي بوليا في لغة جو Go
اداة الاختيار switch يتم من خلالها اختيار واحد من مجموعة من الاخيارات
-
هنا يتم اختيار الخيار فالسfalse وهو الذي ادخلناه في البداية

package main

import "fmt"

func main() {

bq := false
switch bq {
    case true: fmt.Println("bool is true")
    case false: fmt.Println("bool is false")

    default:
    fmt.Println("bool is default:")
}

}

/////////////////////////////////////////

----------------------------------------
----------------------------------------

عمل تسجيلة struct في لغة جو Go
التسجيلة هي مجموعة من القيم المختلفة

مثال:

// structgo1.go
package main

import "fmt"

type nameb1 struct {
   name1 string
   name2 string
}

func main () {

var mynameb1=nameb1 {
  name1: "ali",
  name2: "ahmed",
}
fmt.Println(mynameb1.name1)

}

----------------------------------------
----------------------------------------

مثلث من النجوم
مثال:

package main

import "fmt"

func main () {
fmt.Println()
for i := 1; i <= 5; i++ {
  for j := i; j <= 5; j++ {
   fmt.Printf("*")
  }
  fmt.Println("*")
}
fmt.Println("*")
}