第10章 包 名字空间,变量和函数
来源:互联网 发布:淘宝松下军用笔记本 编辑:程序博客网 时间:2024/05/01 07:41
名字空间,变量和函数就不会把别人的变量和函数搞砸了,反之亦然,名字空间有点像你的家,你的家里想怎么乱都行,
只要你保持你的外部界面对其他公民来说是适度文明就可以了。
在Perl里,一个名字空间叫一个包,包提供了基本的制作块,在它上面构造更高级的概念,比如模块和类等。
在OO的说法中,每个对象都属于一个叫做类的组。在Perl里,类和包以及模块之间的关系是如此密切,
以至于需要新手经常认为它们是客户呼唤的,典型的类是用一个定义了与该类同名的包名字的模块实现的。
Perl里的面向对象的编程是通过引用来实现的,这些引用的引用物知道它们属于哪些类。
10.1 符号表
一个包的内容总体在一起称作符号表,符号表都存储在一个散列里,这个散列的名字和该包的名字相同,
但是后面附加了两个冒号。因此main符号表的名字是%main::.
因为碰巧也是缺省的包,Perl 把%::当做%main::的缩写。
因为包是散列,因此你可以找出该包的键字然后获取所有包中的变量。因此该散列的数值都
是类型团,你可以用好几种方法解引用。比如:
foreach
print “\$symname is defined\n" if defined $sym; ##解引用标量
print “\@$symname is nonnull\n” if @sym; ##解引用数组
print “\%$symname is nonnull\n” if %sym; ##解引用hash
}
在Perl里,一个名字空间叫一个包。
在面向对象里,每个对象都属于一个叫做类的组。
Perl里面向对象的编程是通过引用来实现的,
一个独立命名空间中的变量就是对象的数据 函数就是对象的方法,
所以perl里只需要包package的观念就可以实现 OO了 不需要特别的类Class,
你把一个package隔离的命名空间叫做“类”也可以 效果类似
所谓的类 对象 只是你在单独命名空间中操作的变量和函数 这样应该好理解, 不要再去想其他语言的Class之类的东西 perl没
有
朝着生态编程的第一步是: 不要在公园里乱丢垃圾,
当你写一段代码时,考虑一下给这些代码自己的名字空间,这样你的变量和函数就不会把别人的变量和函数搞砸了,
反之亦然。名字空间有点像你的家,你的家是想怎么乱都行,只要你保持你的外部界面对其它公民说是适度文明就可以了。
在perl里,一个名字空间叫做一个包。包提供了基本的制作块,在他上面构造更高级的概念,比如模块和类等。
典型的类是用一个定了与该类同名的包名字的模块实现的
10.1 符号表
main包内容;
[oracle@jhoa 2]
{print “$
[oracle@jhoa 2]
$CORE:: => *main::CORE::
一个包的内容总体在一起称做符号表,符号表都存储在一个散列里,这个散列的名字和该包名字相同,
单手后面附加了两个冒号。因此main符号表的名字是%main::. 因为main碰巧也是缺省的包,
perl 把%::, 当作%main::的缩写:
[root@master Webqq]# cat t26.pl
foreach key (keys %::)
{print “\$$key => $main::{$key}\n”;}
[root@master Webqq]# perl t26.plversion:: => *main::version::
$_
- 第10章 包 名字空间,变量和函数
- 名字空间和友元函数
- 为什么C++变量名字和函数名字不能是同一个?
- 在名字空间中声明类和成员函数
- 在名字空间中声明类和成员函数
- 读书笔记-Thinking in C++-第10章 名字空间namespace
- 利用static属性隐藏变量和函数的名字
- 给函数和变量取一个有意义的名字
- QtConcurrent 名字空间 run函数
- 名字空间(namespace)和包(package)(TCL) 原则1和2
- 名字空间和域解析
- perl——深入理解(包、命名空间、符号表、类型团、GLOB、变量和函数)
- 第2天:什么是名字空间
- 第2天:什么是名字空间
- 第2天:什么是名字空间
- C++程序设计--第八章:名字空间和异常
- Tcl-局部变量、全局变量、名字空间的变量用法举例
- 十个最好的编程变量、方法、类和包的名字(翻译)
- 我的新博客地址
- android 常用时间格式转换代码大全
- 电池Api的用法与应用
- 【总结】用户权限设置和进程权限提升
- 计算机网络—常考内容
- 第10章 包 名字空间,变量和函数
- 二叉树的层次遍历
- [232]Implement Queue using Stacks
- 猴爬楼梯
- AC一年了
- 哈夫曼树
- Swift学习笔记21——错误处理(Error Handling)
- 经典C语言位域结构体内存对齐
- iOS--textview