Go, также называемый Golang - это язык программирования, созданный Google. Golang является одним из самых быстрорастущих языков по популярности. Кен Томпсон, Роб Пайк и Роберт Грисмер создали Go Language как язык, который имеет множество ядер, легко реализует параллелизм, бесперебойно работает в распределенной среде и позволяет писать программы без особых усилий.
И, конечно, популярные инструменты DevOps, такие как Docker, Kubernetes, Terraform, создаются с помощью Golang, в этой статье ми сравним некоторые основы программирования на Golang и Javascript.
Переменные
Javascript
В Javascript переменные могут быть объявлены с использованием ключевых слов let, const (ES6) и var (ES5) .
// using the const keyword
const a = 10
// using the let keyword
let b = 10
// using the var keyword
var c = 10
console.log(a, b, c) // returns 10, 10, 10
Golang
В Go переменные могут быть объявлены с использованием ключевого слова var , const, а также с использованием короткого синтаксиса .
// using the var keyword
var a = 10 // go detects the type here even though we don't specify
fmt.Println(a) // returns 10
fmt.Printf("variable a is of type: %T\n", a) // returns int
// using the const keyword
const b = 20 // It is important to note that the value of b must be known at compile-time
fmt.Println(b) // returns 20
// a variable can be initialized with the var keyword
var c bool
fmt.Println(c) // returns the zero value(zero value of a boolean is false)
// using the short syntax
d := "this is a variable" // go detects the type of this variable
fmt.Println(d) // returns this is a variable
fmt.Printf("d is of type: %T\n", d) // returns the type(string)
Массивы
Массив - это коллекция элементов.
Javascript
В Javascript массивы являются динамическими, элементы могут быть добавлены и удалены из массива, также Javascript является языком со свободным типом, он может содержать значения другого типа в массиве.
let myArray = [1, "this is array", true, 100.30]
console.log(myArray) // returns [1, "this is array", true, 100.30]
// we can remove the last item in an array using the pop method
myArray.pop()
console.log(myArray) // returns [1, "this is array", true]
// we can add to the end of the array using the push method
myArray.push(20)
console.log(myArray) // returns [1, "this is array", true, 20]
// we can remove the first item of the array using the shift method
myArray.shift()
console.log(myArray) // returns ["this is array", true, 20]
// we can add to the start of the array using the unshift method
myArray.unshift(210)
console.log(myArray) // returns [210, "this is array", true, 20]
Golang
Массивы имеют фиксированную длину в Go, вы не можете добавлять или удалять из массива, также массив может содержать только указанный тип.
a := [5]string{"a", "b", "c", "d", "e"} // length is 5
fmt.Println(a) // returns [a b c d e]
// But what happens if we don't specify exactly 5 items
b := [5]string{"a", "b", "c"}
fmt.Printf("%#v", b) // returns [5]string{"a", "b", "c", "", ""}
// "" represents the zero value(zero value of a string is "")
В Golang у нас также есть срезы , они динамические, и нам не нужно указывать длину, значения можно добавлять и удалять из среза.
a := []string{"a", "b", "c"}
fmt.Printf("%#v", a) // returns []string{"a", "b", "c"}
// adding to a slice, we can use the append method to add an item to a slice
a = append(a, "d") // append takes in the the array and the value we are adding
fmt.Printf("%#v", a) // returns []string{"a", "b", "c", "d"}
// removing from a slice by slicing
a = append(a[0:3]) // 0 represents the index, while 3 represents the position
fmt.Printf("%#v", a) // returns []string{"a", "b", "c"}
// slices can also be created using the make method(in-built)
// the first value is the type, the second and the third value is the length and maximum capacity of the slice
b := make([]string, 3, 5)
fmt.Printf("length of b is:%#v, and cap of b is:%#v\n", len(b), cap(b)) // returns length of b is:3, and cap of b is:5
Функции
Javascript
В Javascript выражение функции может быть написано с использованием ключевого слова function, также может использоваться функция arrow (ES6) .
// using the function keyword
function a(value) {
return value
}
const val = a("this is the value")
console.log(val)
// using arrow function
const b = ((value) => value)
const val2 = b("this is another value")
console.log(val2)
Golang
Используя ключевое слово func , выражение функции может быть написано на go.
func a() {
fmt.Println("this is a function")
}
a() // returns "this is a function"
// parameters and return type can also be specified
func b(a,b int) int { // takes in value of type int and returns an int
result := a * b
return result
}
val := b(5,6)
fmt.Println(val) // returns 30
Объекты
Javascript
В JavaScript мы можем написать Objects, указав ключ и значение в фигурных скобках, разделенных запятой.
const music = {
genre: "fuji",
title: "consolidation",
artist: "kwam 1",
release: 2010,
hit: true
}
console.log(music) // returns {genre: "fuji", title: "consolidation", artist: "kwam 1", release: 2010, hit: true}
Golang
В Golang есть Structs, который содержит поле и тип поля
type Music struct {
genre string
title string
artist string
release int
hit bool
}
ms := Music{
genre: "hiphop",
title: "soapy",
artist: "naira marley",
release: 2019,
hit: true,
}
fmt.Printf("%#v\n", ms) // returns main.Music{genre:"hiphop", title:"soapy", artist:"naira marley", release:2019, hit:true}
Полезные ресурсы Golang:
0 комментариев
Добавить комментарий