/*
函数: 完成某个特定任务的代码块, 给代码起一个合适的名称, 称为函数名称; 以后需要执行代码块只需要利用函数名称调用即可.
格式:
func 函数名称(参数名:参数类型, 参数名:参数类型,...) -> 函数返回值 {函数实现部分}
OC:
- (void)sayHello
{
NSLog(@"hello");
}
- (void)sayWithName:(NSString *)name
{
NSLog(@"hello %@", name);
}
- (void)sayWithName:(NSString *)name age:(NSInteger)age
{
NSLog(@"hello %@ , I'm %tu years old", name, age);
}
- (NSString *)info
{
return @"name = lnj, age = 30";
}
- (NSString *)infoWithName:(NSString *)name age:(NSInteger)age
{
return [NSString stringWithFormat:@"name = %@, age = %tu", name, age];
}
Person *p = [[Person alloc] init];
[p sayHello];
[p sayWithName:@"lnj"];
[p sayWithName:@"lnj" age:30];
NSLog(@"%@", [p info]);
NSLog(@"%@", [p infoWithName:@"xiaohange" age:23]);
*/
// 无参无返回值
func say()->Void
{
print("Hello")
}
func say1() // 如果没有返回值可以不写
{
print("Hi")
}
say()
say1()
// 有参无返回值
func sayWithName(name:String)
{
print("hello \(name)")
}
sayWithName(name: "xiaohange")
func sayWitchName1(name:String, age:Int) -> Void {
print("hello \(name), I'm \(age) years old")
}
sayWitchName1(name: "baobao", age: 20)
// 无参有返回值
func info() -> String
{
return "name = hjq, age = 28"
}
print(info())
// 有参有返回值
func info(name:String, age:Int) -> String
{
return "name = \(name), age = \(age)"
}
print(info(name: "HaRi", age: 26))
/********** 嵌套函数 **********/
func showArray(array:[Int])
{
for number in array {
print("\(number)")
}
}
showArray(array: [1,2,3,4,5])
/* 苹果自带api
func swap( a:inout Int, b:inout Int) // 2.0 是 func swaping(inout a:Int, inout b:Int) 废弃
{
let temp = a
a = b
b = temp
}
*/
/*********** 冒泡排序,插入排序,选择排序,快速排序 ***********/
// 冒泡排序
func bubbleSort(array:inout [Int])
{
func swap( a:inout Int, b:inout Int)
{
let temp = a
a = b
b = temp
}
for _ in 0..<array.count { // 用不到的参数可以用 _ 代替
for j in 0..<(array.count-1) {
if array[j] > array[j + 1] {
// let temp = array[j]
// array[j] = array[j + 1]
// array[j + 1] = temp
swap(a: &array[j], b: &array[j + 1])
}
}
}
}
var arr:Array<Int> = [10, 23, 22, 40, 6]
bubbleSort(array: &arr)
showArray(array: arr)
// 插入排序
var arr1:Array<Int> = [10, 34, 23, 9, 12]
for i in (0..<arr1.count) {
var key = arr1[i]
var j = i - 1
&nbs