linux samba 客户端配置
2011-10-07 11:55
246 查看
在面向对象的分析与设计的方法中,为了增强一个类的功能,我们可以通过继承机制从父类继承下来一些成员,然后再根据自己的需要在子类中添加一些成员,这样我们就可以得到增强功能的新类了,但是这种方式还受到一些限制,继承过程比较繁琐,类继承可能被禁止,有些功能也可能无法继承。
在Swift中可以使用一种扩展机制,在原有类型(类,结构体和枚举)的基础上添加新功能,扩展是一种轻量级的继承机制,即使原有类型限制继承,我们仍然可以通过扩展机制继承原有类型的功能。
扩展机制的另一个优势是:扩展的类型可以是类、结构体和枚举,而继承只能是类,不能是结构体和枚举。
一、声明扩展
声明扩展的类型如下:
extension 类型名 {
//添加新功能
}
声明扩展的关键字是extension,类型名是Swift中已有的类型,包括类、结构体和枚举,但是也可以扩展整型,浮点型,布尔型,字符串等基本数据类型,这是因为这些类型也基本是结构体类型;
Swift中的扩展机制可以在原类型增加的新功能包括:
1、实例计算属性和静态计算属性;
2、实例方法和静态方法;
3、构造器;
4、下标;
二、扩展计算属性
在原类型上扩展计算属性,包括实例计算属性和静态计算属性,这些添加计算属性的定义,与普通计算属性的定义是一致。
1、Int类型扩展
2、静态属性的示例
三、扩展方法
可以在原类型基础上扩展方法,包括实例方法和静态方法,这些添加方法的定义与普通的方法的定义是一致的;
四、扩展构造器
扩展类型的时候,也可以添加新的构造器
示例:
扩展类的时候能向类中添加新的便利构造器,但不能添加新的指定构造器和析构器,指定的构造器和析构器只能由原类型继承;
五、扩展下标
可以把下标看成是特殊的属性,可以实现索引访问属性,我们可以在原有类型的基础上扩展下标功能。
字符串本身没有提供根据下标访问字符的功能,下面扩展字符串,实现下标访问字符功能,如下:
本文出自 “平凡之路” 博客,请务必保留此出处http://linjohn.blog.51cto.com/1026193/1623434
在Swift中可以使用一种扩展机制,在原有类型(类,结构体和枚举)的基础上添加新功能,扩展是一种轻量级的继承机制,即使原有类型限制继承,我们仍然可以通过扩展机制继承原有类型的功能。
扩展机制的另一个优势是:扩展的类型可以是类、结构体和枚举,而继承只能是类,不能是结构体和枚举。
一、声明扩展
声明扩展的类型如下:
extension 类型名 {
//添加新功能
}
声明扩展的关键字是extension,类型名是Swift中已有的类型,包括类、结构体和枚举,但是也可以扩展整型,浮点型,布尔型,字符串等基本数据类型,这是因为这些类型也基本是结构体类型;
Swift中的扩展机制可以在原类型增加的新功能包括:
1、实例计算属性和静态计算属性;
2、实例方法和静态方法;
3、构造器;
4、下标;
二、扩展计算属性
在原类型上扩展计算属性,包括实例计算属性和静态计算属性,这些添加计算属性的定义,与普通计算属性的定义是一致。
1、Int类型扩展
extension Int { var erroMessage:String { var erroStr = "" switch(selef){ case -7 : erroStr = "没有数据!" case -6: erroStr = "日期没有输入" case -5: erroStr ="内容没有输入" case -4 : erroStr = "ID没有输入" case -3: erroStr = "数据访问失败" case -2: erroStr = "您的账号最多能输入10条数据" case -1: erroStr = "用户不存在" default: erroStr = "" } return erroStr } } let message = (-7).erroMessage println("Erro Code:-7,Erro Message:\(message)
2、静态属性的示例
struct Account { var amount:Double = 0.0 var owner:String = "" }
extention Account { static var investRate:Double { return 0.668 } }此外,在扩展中不仅可以定义只读计算属性,还可以定义读写计算属性、实例计算属性和静态计算属性,它们的定义方式和原类中的定义方式是一样的
三、扩展方法
可以在原类型基础上扩展方法,包括实例方法和静态方法,这些添加方法的定义与普通的方法的定义是一致的;
extension Double { static var interestRate:Double = 0.668 func interestBy1()->Double { return self.Double.interestRate } mutating func interestBy2()->Double { self = self * Double.interestRate } static func interestBy3(amount:Double)->Double { return amount * Double.interestRate } }
四、扩展构造器
扩展类型的时候,也可以添加新的构造器
示例:
struct Rectangle { var width:Double var height:Double init(width:Double,height:Double) { self.width = width self.height = height } function description()-String { return "Rectangle" } } extension Rectangle { init(length:Double){ self.init(width:length,height:length) } } var rect = Rectangle(width:20.0.height:30.0) var square = Rectangle(length:10)
扩展类的时候能向类中添加新的便利构造器,但不能添加新的指定构造器和析构器,指定的构造器和析构器只能由原类型继承;
class Person { var name:String var age:Int func description()->String{ return "\(name):\(age)" } init(name:String,age:Int){ self.name = name self.age = age } } extension Person { convenience init(name:String){ self.init(name:name,age:10) } }
五、扩展下标
可以把下标看成是特殊的属性,可以实现索引访问属性,我们可以在原有类型的基础上扩展下标功能。
字符串本身没有提供根据下标访问字符的功能,下面扩展字符串,实现下标访问字符功能,如下:
extension String { subscript(index:Int)->String{ if index > countElement(self){ return ''" } var c:String = "" var i:Int = 0 for character in self { if (i == index) { c = String(character) break } i++ } return c } }
本文出自 “平凡之路” 博客,请务必保留此出处http://linjohn.blog.51cto.com/1026193/1623434
相关文章推荐
- 用SAMBA配置windows服务器和linux客户端之间的文件共享
- 快速实现将linux配置成Samba客户端来访问windows服务器的共享资源!!!
- [原]linux与window文件目录共享——samba配置及在windows映射
- Rsync+linux客户端+windows客户端配置
- NO1:安装VMLinux虚拟机,安装配置Samba实现Linux与Windows文件共享
- Linux下Samba的配置
- 简述Linux下Samba服务的安装与配置
- linux下Samba服务配置与安装
- Linux(Ubuntu版本)下配置samba实现文件夹共享的方法:
- linux应用之samba服务的安装及配置(centos)
- 配置Samba实现Linux和Windows系统之间的文件互访
- DNS(二)Linux下正反向解析配置和客户端查询工具
- linux下samba的配置
- Linux中samba配置和windows映射Linux驱动盘
- linux系统管理客户端1--串口配置代码编写
- Linux配置好samba共享后,在windows中只能浏览不能写入的解决方法
- 存储学习之--StarWind虚拟存储配置和Linux客户端连接
- linux上svn服务端和客户端的配置
- linux下samba服务配置
- Linux下samba的配置