Go语言程序演示类中的封装


在本文中,我们将学习如何使用 Go 语言程序在类中实现封装。

Go 语言中的封装与其他面向对象语言的比较 - 在面向对象语言中,类的变量或数据对该类是私有的,只能通过声明它们的类的成员函数访问。然而,Go 语言不支持类和对象。因此,在 Go 语言中使用包来实现封装。Go 提供了两种标识符:导出标识符和未导出标识符。从包中导出变量、函数、方法、字段和结构体可以实现封装,并帮助管理元素的可见性(变量、函数、方法、字段、结构体)。如果它们所在的包存在于你的程序中,这些元素就是可见的。

  • Go 编程语言中的导出标识符 - 从其所在的包导出的标识符称为导出标识符。这些标识符总是以大写字母开头。大写字母表示一个导出的标识符,这就是给定标识符的含义。导出的标识符始终只在其定义的包内有效。导出包中的标识符时,你只需导出提供的标识符的名称,而不是其实现。此外,此方法也可用于字段、方法和结构体。

  • Go 编程语言中的未导出标识符 - 从任何包中未导出的标识符称为未导出标识符。它们都小写。如下例所示,addition 函数与任何包无关,因此它不是导出函数,其可见性仅限于此应用程序。

示例 1

使用导出标识符在 Go 编程语言中实现封装 -

现在让我们来看一个例子,我们将尝试通过使用导出函数的概念将字符串数组转换为大写。

package main

import (
   "fmt"
   "strings"
)

// fmt package allows us to print anything on the screen.
// strings package allows us to use other predefined functions like ToUpper()

// calling the main function
func main() {

   // creating an array of strings and assigning values to it
   arr := []string{"apple", "banana", "fruits"}

   // converting the letters of the string declared above to uppercase using ToUpper()
   // method defined in strings package.
   fmt.Println("Successfully converted array of strings to upper case using Exported method ToUpper() defined in strings package")
   fmt.Println("The resultant string is:")
   for x := 0; x < len(arr); x++ {

      // calling the exported method ToUpper()
      // storing the result in a new array called results
      results := strings.ToUpper(arr[x])

      // printing the result on the screen
      fmt.Println(results)
   }
}

输出

Successfully converted array of strings to upper case using Exported method ToUpper() defined in strings package
The resultant string is:
APPLE
BANANA
FRUITS

描述

  • 首先,我们需要导入所需的包,例如 fmt 和 strings。fmt 包允许我们在屏幕上打印任何内容,strings 包允许我们使用其中定义的其他预定义方法,例如 ToUpper()。

  • 调用 main 函数。这是程序的起点,程序将从此处开始。

  • 初始化一个字符串数组并将字符串值存储到其中。

  • 现在开始一个 for 循环来遍历数组,并使用 string.ToUpper() 函数将数组的每个元素转换为大写,并将结果数组存储在 results 中。

  • 现在,使用 fmt.Println() 函数在屏幕上打印结果。

示例 2

使用未导出标识符在 Go 编程语言中实现封装 -

现在让我们来看一个例子,我们将尝试通过使用未导出函数的概念来查找整数数组的总和。

package main
import "fmt"

// fmt package allows us to print anything on the screen
// defining an unexported function addition to find the sum of an array of integers
// this function receives an array of integers as an argument and returns the integer value as the sum
func addition(val []int) int {
   s := 0

   for x := range val {
      s += val[x]
   }
   return s
}

// Calling the main function
func main() {

   // defining an array of integers and storing values in it
   arr := []int{50, 29, 36, 55, 87, 95}

   // calling then unexported method addition() to find the sum of the array and passing the
   // array to it as
   // an argument and storing the result in a separate variable
   result := addition(arr)

   // printing the result on the screen
   fmt.Println("Successfully found the sum of an array of integers using UNExported method addition()")
   fmt.Println("The resultant sum is:")
   fmt.Println(result)
}

输出

Successfully found the sum of an array of integers using UNExported method addition()
The resultant sum is:
352

描述

  • 首先,我们需要导入 fmt 包。fmt 包允许我们在屏幕上打印任何内容。

  • 初始化并定义一个名为 addition() 的方法来查找整数数组的总和。此函数将整数数组作为参数,并计算其总和。然后它返回结果。

  • 调用 main 函数。这是程序的起点,程序将从此处开始。

  • 初始化一个整数数组并将值存储到其中。

  • 现在通过将数组作为参数传递给它来调用 addition 函数。请注意,在调用 addition 函数时,第一个字母是小写的,这表示该函数是未导出的,并且在 main 函数中定义。

  • 现在,将结果存储在不同的变量中并在屏幕上打印它。

更新于:2022-12-29

浏览量 367

启动你的职业生涯

完成课程获得认证

开始学习
广告