Một chuỗi có thể được gán cho một biến không?

Cho đến bây giờ chúng ta chỉ thấy các chương trình sử dụng các giá trị bằng chữ [số, chuỗi, v.v. ] nhưng những chương trình như vậy không đặc biệt hữu ích. Để tạo ra các chương trình thực sự hữu ích, chúng ta cần tìm hiểu hai khái niệm mới. biến và báo cáo luồng điều khiển. Chương này sẽ khám phá các biến chi tiết hơn

Một biến là một vị trí lưu trữ, với một loại cụ thể và một tên liên quan. Hãy thay đổi chương trình chúng ta đã viết trong chương 2 để nó sử dụng một biến

package main

import "fmt"

func main[] {
  var x string = "Hello World"
  fmt.Println[x]
}

Lưu ý rằng chuỗi ký tự từ chương trình gốc vẫn xuất hiện trong chương trình này, nhưng thay vì gửi nó trực tiếp đến hàm

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
2, chúng ta sẽ gán nó cho một biến. Các biến trong Go được tạo trước tiên bằng cách sử dụng từ khóa
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
3, sau đó chỉ định tên biến [
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
4], loại [_______15] và cuối cùng gán giá trị cho biến [
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
6]. Bước cuối cùng là tùy chọn nên một cách khác để viết chương trình sẽ như thế này

package main

import "fmt"

func main[] {
  var x string
  x = "Hello World"
  fmt.Println[x]
}

Các biến trong Go tương tự như các biến trong đại số nhưng có một số khác biệt nhỏ

Đầu tiên, khi nhìn thấy biểu tượng

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
7, chúng ta có xu hướng đọc nó là “x bằng chuỗi Hello World”. Không có gì sai khi đọc chương trình của chúng ta theo cách đó, nhưng tốt hơn nên đọc nó như “x nhận chuỗi Hello World” hoặc “x được gán chuỗi Hello World”. Sự khác biệt này rất quan trọng bởi vì [như tên của chúng sẽ gợi ý] các biến có thể thay đổi giá trị của chúng trong suốt thời gian tồn tại của chương trình. Hãy thử chạy như sau

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}

Trong thực tế, bạn thậm chí có thể làm điều này

var x string
x = "first "
fmt.Println[x]
x = x + "second"
fmt.Println[x]

Chương trình này sẽ vô nghĩa nếu bạn đọc nó như một định lý đại số. Nhưng sẽ hợp lý nếu bạn cẩn thận đọc chương trình dưới dạng danh sách các lệnh. Khi chúng ta thấy

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
8, chúng ta nên đọc nó là “gán nối giá trị của biến x và chuỗi ký tự thứ hai cho biến x. ” Phía bên phải của
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
7 được thực hiện trước và kết quả sau đó được gán cho phía bên trái của
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
7

Dạng

var x string
x = "first "
fmt.Println[x]
x = x + "second"
fmt.Println[x]
1 phổ biến trong lập trình đến nỗi Go có một câu lệnh gán đặc biệt.
var x string
x = "first "
fmt.Println[x]
x = x + "second"
fmt.Println[x]
2. Chúng ta có thể viết
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
8 thành
var x string
x = "first "
fmt.Println[x]
x = x + "second"
fmt.Println[x]
4 và nó sẽ làm điều tương tự. [Các toán tử khác có thể được sử dụng theo cách tương tự]

Một điểm khác biệt giữa cờ vây và đại số là chúng ta sử dụng một biểu tượng khác cho đẳng thức.

var x string
x = "first "
fmt.Println[x]
x = x + "second"
fmt.Println[x]
5. [Hai dấu bằng nhau cạnh nhau]
var x string
x = "first "
fmt.Println[x]
x = x + "second"
fmt.Println[x]
5 là một toán tử giống như
var x string
x = "first "
fmt.Println[x]
x = x + "second"
fmt.Println[x]
7 và nó trả về một giá trị boolean. Ví dụ

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
0

Chương trình này nên in

var x string
x = "first "
fmt.Println[x]
x = x + "second"
fmt.Println[x]
8 vì
var x string
x = "first "
fmt.Println[x]
x = x + "second"
fmt.Println[x]
9 không giống với
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
00. Mặt khác

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
4

Điều này sẽ in ra

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
01 vì hai chuỗi giống nhau

Vì việc tạo một biến mới có giá trị bắt đầu rất phổ biến nên Go cũng hỗ trợ một câu lệnh ngắn hơn

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
6

Lưu ý

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
02 trước
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
7 và không có loại nào được chỉ định. Loại này không cần thiết vì trình biên dịch Go có thể suy ra loại dựa trên giá trị bằng chữ mà bạn gán cho biến. [Vì bạn đang gán một chuỗi ký tự, nên
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
4 được cung cấp loại
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
5] Trình biên dịch cũng có thể suy luận với câu lệnh
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
3

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
2

Điều tương tự làm việc cho các loại khác

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
3

Nói chung, bạn nên sử dụng mẫu đơn ngắn hơn này bất cứ khi nào có thể

Cách đặt tên biến

Đặt tên biến đúng cách là một phần quan trọng trong phát triển phần mềm. Tên phải bắt đầu bằng một chữ cái và có thể chứa các chữ cái, số hoặc ký hiệu

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
07 [gạch dưới]. Trình biên dịch Go không quan tâm bạn đặt tên biến là gì, vì vậy tên đó có ý nghĩa vì lợi ích của bạn [và những người khác]. Chọn tên mô tả rõ ràng mục đích của biến. Giả sử chúng ta có những điều sau đây

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
5

Trong trường hợp này x không phải là một tên rất hay cho một biến. Một cái tên tốt hơn sẽ là

package main

import "fmt"

func main[] {
  var x string
  x = "Hello World"
  fmt.Println[x]
}
0

hoặc thậm chí

package main

import "fmt"

func main[] {
  var x string
  x = "Hello World"
  fmt.Println[x]
}
1

Trong trường hợp cuối cùng này, chúng tôi sử dụng một cách đặc biệt để biểu diễn nhiều từ trong một tên biến được gọi là chữ thường lạc đà [còn được gọi là chữ hỗn hợp, mũ gập ghềnh, lưng lạc đà hoặc lưng gù]. Chữ cái đầu tiên của từ đầu tiên là chữ thường, chữ cái đầu tiên của các từ tiếp theo là chữ hoa và tất cả các chữ cái khác là chữ thường

Phạm vi

Quay trở lại chương trình chúng ta đã thấy ở đầu chương

package main

import "fmt"

func main[] {
  var x string = "Hello World"
  fmt.Println[x]
}

Một cách khác để viết chương trình này sẽ như thế này

package main

import "fmt"

func main[] {
  var x string
  x = "Hello World"
  fmt.Println[x]
}
3

Lưu ý rằng chúng ta đã di chuyển biến ra ngoài hàm chính. Điều này có nghĩa là các chức năng khác có thể truy cập biến này

package main

import "fmt"

func main[] {
  var x string
  x = "Hello World"
  fmt.Println[x]
}
4

Hàm

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
08 hiện có quyền truy cập vào biến
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
4. Bây giờ giả sử rằng chúng tôi đã viết cái này thay vì

package main

import "fmt"

func main[] {
  var x string
  x = "Hello World"
  fmt.Println[x]
}
5

Nếu bạn chạy chương trình này, bạn sẽ thấy một lỗi

package main

import "fmt"

func main[] {
  var x string
  x = "Hello World"
  fmt.Println[x]
}
6

Trình biên dịch cho bạn biết rằng biến

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
4 bên trong hàm
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
08 không tồn tại. Nó chỉ tồn tại bên trong hàm
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
42. Phạm vi nơi bạn được phép sử dụng
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
4 được gọi là phạm vi của biến. Theo đặc tả ngôn ngữ “Go được xác định phạm vi từ vựng bằng cách sử dụng các khối”. Về cơ bản, điều này có nghĩa là biến tồn tại trong các dấu ngoặc nhọn gần nhất
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
44
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
45 [một khối] bao gồm mọi dấu ngoặc nhọn [khối] lồng nhau, nhưng không nằm ngoài chúng. Phạm vi có thể hơi khó hiểu lúc đầu;

hằng số

Go cũng có hỗ trợ cho các hằng số. Hằng số về cơ bản là các biến có giá trị không thể thay đổi sau này. Chúng được tạo giống như cách bạn tạo biến nhưng thay vì sử dụng từ khóa

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
3, chúng tôi sử dụng từ khóa
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
47

package main

import "fmt"

func main[] {
  var x string
  x = "Hello World"
  fmt.Println[x]
}
7

Cái này

package main

import "fmt"

func main[] {
  var x string
  x = "Hello World"
  fmt.Println[x]
}
8

Kết quả trong một lỗi thời gian biên dịch

package main

import "fmt"

func main[] {
  var x string
  x = "Hello World"
  fmt.Println[x]
}
9

Hằng số là một cách tốt để sử dụng lại các giá trị chung trong một chương trình mà không cần viết chúng ra mỗi lần. Ví dụ:

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
48 trong gói
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
49 được định nghĩa là một hằng số

Xác định nhiều biến

Go còn có một cách viết tắt khác khi bạn cần định nghĩa nhiều biến

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
0

Sử dụng từ khóa

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
3 [hoặc
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
47] theo sau là dấu ngoặc đơn với mỗi biến trên một dòng riêng

Một chương trình ví dụ

Đây là một chương trình mẫu lấy một số do người dùng nhập vào và nhân đôi số đó

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
1

Chúng tôi sử dụng một chức năng khác từ gói

package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
62 để đọc đầu vào của người dùng [
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
63].
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
64 sẽ được giải thích trong chương sau, bây giờ tất cả những gì chúng ta cần biết là
package main

import "fmt"

func main[] {
  var x string
  x = "first"
  fmt.Println[x]
  x = "second"
  fmt.Println[x]
}
63 điền vào đầu vào bằng số chúng ta nhập

Các vấn đề

  • Hai cách để tạo một biến mới là gì?

  • Giá trị của

    package main
    
    import "fmt"
    
    func main[] {
      var x string
      x = "first"
      fmt.Println[x]
      x = "second"
      fmt.Println[x]
    }
    4 sau khi chạy là bao nhiêu.
    ______267?

  • Phạm vi là gì và làm thế nào để bạn xác định phạm vi của một biến trong Go?

  • Sự khác biệt giữa

    package main
    
    import "fmt"
    
    func main[] {
      var x string
      x = "first"
      fmt.Println[x]
      x = "second"
      fmt.Println[x]
    }
    3 và
    package main
    
    import "fmt"
    
    func main[] {
      var x string
      x = "first"
      fmt.Println[x]
      x = "second"
      fmt.Println[x]
    }
    47 là gì?

  • Sử dụng chương trình ví dụ làm điểm bắt đầu, hãy viết chương trình chuyển đổi từ độ F sang độ C. [

    package main
    
    import "fmt"
    
    func main[] {
      var x string
      x = "first"
      fmt.Println[x]
      x = "second"
      fmt.Println[x]
    }
    20]

    Bạn có thể chỉ định một chuỗi không?

    Việc gán chuỗi được thực hiện bằng cách sử dụng toán tử = và sao chép các byte thực của chuỗi từ toán hạng nguồn đến và bao gồm cả byte null sang biến ở phía bên trái, biến này phải thuộc loại chuỗi. Bạn có thể tạo một biến kiểu chuỗi mới bằng cách gán cho nó một biểu thức kiểu chuỗi

    Bạn có thể gán một chuỗi cho một biến trong C không?

    C có rất ít hỗ trợ cú pháp cho chuỗi. Không có toán tử chuỗi [chỉ có toán tử mảng ký tự và con trỏ ký tự]. Bạn không thể gán chuỗi .

    Là một chuỗi được coi là một biến?

    Hai loại biến phổ biến mà bạn có thể thấy là số và chuỗi .

    Một chuỗi có thể là một tên biến không?

    Biến chuỗi là biến chứa chuỗi ký tự . Đó là một phần của bộ nhớ đã được lập trình viên đặt tên. Tên này trông giống như những tên biến mà bạn đã thấy cho đến nay, ngoại trừ tên của một biến chuỗi kết thúc bằng ký hiệu đô la, $. $ là một phần của tên.

Chủ Đề