Golang 类的封装的程序
在本文中,我们将使用Golang程序来学习类中的封装
Go语言中的封装与其他面向对象语言的比较 - 面向对象语言中的类的变量或数据对于该类是私有的,只能通过类中的任何成员函数来访问。然而,Go语言不支持类和对象。因此,在Go编程语言中使用包来实现封装。Go提供了导出和未导出标识符,这是两种不同的标识符形式。从包中导出变量、函数、方法、字段和结构可以实现封装,并帮助管理这些元素的可见性(变量、函数、方法、字段、结构)。如果它们所在的包在程序中存在,这些项目就是可见的。
- Go编程语言中的导出标识符 - 在指定它们的包中被导出的标识符被称为导出标识符。这些标识符始终以大写字母开头。大写字母表示导出标识符,也就是所给定的标识符是导出标识符。导出的标识符只在其所在的包内有效。当你从包中导出它时,只导出所提供的标识符的名称,而不是它的实现。此外,这种方法也可用于字段、方法和结构。
-
Go编程语言中的未导出标识符 - 未从任何包中导出的标识符称为未导出标识符。它们都是小写的。如下面的示例所示,添加函数没有与任何包关联,因此它不是一个导出的函数,它的可见性仅对此应用程序可用。
示例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()。
-
调用主函数。这是我们程序的起始点。
-
初始化一个字符串数组,并将字符串值存储在其中。
-
现在开始一个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()的方法,以求出整数数组的总和。该函数接受一个整数数组作为参数,并计算其总和。然后返回结果。
-
调用主函数。这是我们程序的起点。
-
初始化一个整数数组,并在其中存储值。
-
现在通过将数组作为参数传递给addition函数来调用它。请注意,在调用addition函数时,首字母小写,这意味着该函数未被导出,定义在主函数中。
-
现在,将结果存储在另一个变量中并在屏幕上打印出来。