十八 Swift5.0之 函数定义

全系列导航:Swift5.0 系列博客索引


/*
函数: 完成某个特定任务的代码块, 给代码起一个合适的名称称之为函数名称. 以后需要执行代码块只需要利用函数名称调用即可, 好比每个人都有一个名字, 叫名字就能找到对应的人
格式:
func 函数名称(参数名:参数类型, 参数名:参数类型...) -> 函数返回值 {函数实现部分}

OC:
- (void)say
{
    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 = gezi, age = 30";
}
- (NSString *)infoWithName:(NSString *)name age:(NSInteger)age
{
    return [NSString stringWithFormat:@"name = %@, age = %tu", name, age];
}

Person *p = [[Person alloc] init];
[p say];
[p sayWithName:@"gezi"];
[p sayWithName:@"gezi" age:30];
NSLog(@"%@", [p info]);
NSLog(@"%@", [p infoWithName:@"gezi" age:30]);
*/

// 无参无返回值
func say() -> Void
{
    print("hello")
}

func say1() // 如果没有返回值可以不写
{
    print("hello")
}
say1()


// 有参无返回值
func sayWithName(name:String)
{
    print("hello \(name)")
}
sayWithName(name: "gezi")

func sayWithName1(name:String, age:Int)
{
    print("hello \(name) , I'm \(age) years old ")
}
sayWithName1(name: "gezi", age: 30)


// 无参有返回值
func info() -> String
{
    return "name = gezi, age = 30"
}
print(info())


// 有参有返回值
func info(name:String, age:Int) -> String
{
    return "name = \(name), age = \(age)"
}
print(info(name: "gezi", age:30))


/*
嵌套函数
*/
func showArray(array:[Int])
{
    for number in array
    {
        print("\(number), ")
    }
}
/*
func swap(inout a:Int, inout b:Int)
{
    let temp = a
    a = b
    b = temp
}
*/


//冒泡排序
//参数值可变 给参数添加 inout 前缀
//在函数中 传入的参数前要加 & (系统会自动加)
//第一种,嵌套语法
func bubbleSort(array:inout [Int]) -> [Int]
{

    func swap( a:inout Int, b:inout Int)
    {
        let temp = a
        a = b
        b = temp
    }
    
    for i in 0..<array.count {
        for j in 0..<array.count-(i+1) {
            if array[j] > array[j + 1]
            {
                var ee = array[j]
                var ww = array[j+1]
                swap(a: &ee, b: &ww)
                array[j] = ee
                array[j+1] = ww
            }
        }
        
    }
    
    return array
}

var myArray:Array<Int> = [31, 13, 52, 84, 5]
let brr = bubbleSort(array: &myArray)
print("brr=",brr)


//第二种
func mySort(array:inout [Int]) -> [Int]
{

    for i in 0..<array.count {
        for j in 0..<array.count-(i+1) {
            if array[j] > array[j + 1]
            {

                let temp = array[j]
                array[j] = array[j + 1]
                array[j + 1] = temp
            }
        }
        
    }
    
    return array
}

var ppArray:Array<Int> = [44, 13, 22, 66, 5]
let qqq = mySort(array: &ppArray)
print("qqq=",qqq)


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值