首页 > 其他分享 >无涯教程-Swift - Method(方法)

无涯教程-Swift - Method(方法)

时间:2024-01-29 13:32:13浏览次数:28  
标签:Int res 无涯 方法 let func print Swift Method

在Swift 4语言中,与特定类型关联的函数称为"方法"。在Objective C中,类用于定义方法,而Swift 4语言为用户提供了具有类,结构和枚举方法的灵活性。

实例方法

在Swift 4语言中,可通过方法访问Class,Structures和Enumeration。

方法可以写在{}花括号内,它具有对类型的方法和属性的隐式访问,当调用该类型的特定时,它将可以访问该特定。

func funcname(Parameters) -> returntype {
   Statement1
   Statement2
   ---
   Statement N
   return parameters
}

实例方法示例

class calculations {
   let a: Int
   let b: Int
   let res: Int

   init(a: Int, b: Int) {
      self.a=a
      self.b=b
      res=a + b
   }
   
   func tot(c: Int) -> Int {
      return res - c
   }
   
   func result() {
      print("Result is:\(tot(c: 20))")
      print("Result is:\(tot(c: 50))")
   }
}
let pri=calculations(a: 600, b: 300)
pri.result()

运行上述程序时,我们得到以下输出-

Result is: 880
Result is: 850

类计算定义了两个方法-

  • init()  -  定义为将两个数字a和b相加并将其存储在输出'res'中
  • tot()   -  用于从传递" c"值中减去" res"

最后,调用打印带有a和b值的计算方法。方法用'.'访问。

本地和外部参数

Swift 4函数同时描述了其变量的局部和全局声明,同样,Swift 4 Methods的命名约定也类似于目标C的约定,但是,函数和方法的局部和全局参数名称声明的特征不同。 Swift 4中的第一个参数由介词名称称为" with"," for"和" by",以便于访问命名约定。

class division {
   var count: Int=0
   func incrementBy(no1: Int, no2: Int) {
      count=no1/no2
      print(count)
   }
}

let counter=division()
counter.incrementBy(no1: 1800, no2: 3)
counter.incrementBy(no1: 1600, no2: 5)
counter.incrementBy(no1: 11000, no2: 3)

运行上述程序时,我们得到以下输出-

600
320
3666

带有#和_符号参数

即使Swift 4方法为本地声明提供了第一个参数名称,用户仍然可以将参数名称从本地声明修改为全局声明,这可以通过在"#"符号前添加第一个参数名称来完成。这样,可以在整个模块中全局访问第一个参数。

当用户需要使用外部名称访问后续参数名称时,方法名称将在'_'符号的帮助下被覆盖。

class multiplication {
   var count: Int=0
   func incrementBy(no1: Int, no2: Int) {
      count=no1 * no2
      print(count)
   }
}

let counter=multiplication()

counter.incrementBy(no1: 800, no2: 3)
counter.incrementBy(no1: 100, no2: 5)
counter.incrementBy(no1: 15000, no2: 3)

运行上述程序时,我们得到以下输出-

2400
500
45000

self属性

方法的所有定义类型都具有一个称为"self"的隐式属性, 'Self'属性用于为其定义的方法引用当前。

class calculations {
   let a: Int
   let b: Int
   let res: Int

   init(a: Int, b: Int) {
      self.a=a
      self.b=b
      res=a + b
      print("Inside Self Block:\(res)")
   }
   
   func tot(c: Int) -> Int {
      return res - c
   }
   
   func result() {
      print("Result is:\(tot(c: 20))")
      print("Result is:\(tot(c: 50))")
   }
}

let pri=calculations(a: 600, b: 300)
let sum=calculations(a: 1200, b: 300)

pri.result()
sum.result()

运行上述程序时,我们得到以下输出-

Inside Self Block: 900
Inside Self Block: 1500
Result is: 880
Result is: 850
Result is: 1480
Result is: 1450

修改值类型

在Swift 4中,语言结构和枚举属于值类型,不能通过其方法更改,但是,Swift 4语言提供了通过"mutating"行为来修改值类型的灵活性, Mutate将对方法进行任何更改,并在执行该方法后返回到原始形式,同样,通过'self'属性,将为其隐式函数创建新,并在执行后替换现有方法

struct area {
   var length=1
   var breadth=1
   
   func area() -> Int {
      return length * breadth
   }
   mutating func scaleBy(res: Int) {
      length *= res
      breadth *= res
      print(length)
      print(breadth)
   }
}

var val=area(length: 3, breadth: 5)
val.scaleBy(res: 3)
val.scaleBy(res: 30)
val.scaleBy(res: 300)

运行上述程序时,我们得到以下输出-

9
15
270
450
81000
135000

可变self属性

结合" self"属性的可变方法会为定义的方法分配一个新。

struct area {
   var length=1
   var breadth=1
   func area() -> Int {
      return length * breadth
   }
   mutating func scaleBy(res: Int) {
      self.length *= res
      self.breadth *= res
      print(length)
      print(breadth)
   }
}

var val=area(length: 3, breadth: 5)
val.scaleBy(res: 13)

当我们运行上述程序时,得到以下输出。 -

39
65

方法类型

当一个方法的特定实例被调用时,它被称为实例方法。当方法调用特定类型的方法时,称为“Type Methods"。“classes"的类型方法由"func"关键字定义,结构和枚举类型方法在"func"关键字之前由"static"关键字定义。

class Math {
   class func abs(number: Int) -> Int {
      if number < 0 {
         return (-number)
      } else {
         return number
      }
   }
}

struct absno {
   static func abs(number: Int) -> Int {
      if number < 0 {
         return (-number)
      } else {
         return number
      }
   }
}

let no=Math.abs(number: -35)
let num=absno.abs(number: -5)

print(no)
print(num)

运行上述程序时,得到以下输出。 -

35
5

参考链接

https://www.learnfk.com/swift/swift-methods.html

标签:Int,res,无涯,方法,let,func,print,Swift,Method
From: https://blog.51cto.com/u_14033984/9464315

相关文章

  • 无涯教程-Swift - Properties(属性)
    Swift4语言为类,枚举或结构提供属性以关联值。存储属性Swift4引入了存储属性的概念来存储常量和变量的,常量的存储属性由'let'关键字定义,变量的存储属性由'var'关键字定义。在定义期间,存储的属性提供"默认值"初始化期间,用户可以初始化和修改初始值structNumber{var......
  • 无涯教程-Swift - Struc(结构)
    Swift4提供了一个灵活的构建块,可以将结构struct用作结构,通过使用这些结构,可以一次定义构造方法和属性。结构语法Structuresaredefinedwitha'Struct'Keyword.structnameStruct{Definition1Definition2---DefinitionN}结构定义如假设我们必须访......
  • 无涯教程-Swift - 集合(Sets)
    Swift4Sets用于存储相同类型的不同值,但它们没有数组的确定顺序,如果要确保没有重复的值,则可以使用Set集合而不是数组。创建Set集您可以使用以下初始化语法创建一个特定类型的空集-varsomeSet=Set<Character>()//字符可以替换为set的数据类型。访问和修改您可以使用......
  • 无涯教程-Swift - 数组
    Swift4数组用于存储相同类型的值的有序列表。如果将创建的数组分配给变量,则它始终是可变的,这意味着您可以通过添加,删除或更改其元素来对其进行更改;但是,如果将数组分配给常量,则该数组是不可变的,并且其大小和内容无法更改。创建数组您可以使用以下初始化器语法创建某种类型的空......
  • 无涯教程-Swift - 循环语句
    在某些情况下,您需要多次执行一个代码块。通常,语句是按顺序执行的:函数中的第一个语句首先执行,然后第二个执行,依此类推。循环语句使我们可以多次执行一个语句或一组语句。以下是大多数编程语言中循环语句的概述-Swift4编程语言提供了以下种类的循环来处理循环需求。Sr.NoLoop......
  • 无涯教程-Swift - 条件判断
    件判断结构要求程序员根据一个或多个要条件判断,如果条件为true时要执行的一个或多个语句,否则执行其它语句。以下是在大多数编程语言中找到的典型决策结构的概述-Swift4提供以下类型的决策声明。单击以下链接以查看其详细信息。Sr.NoStatement&描述1ifstatementif语......
  • 无涯教程-Swift - 运算符
    运算符是一个符号,告诉编译器执行特定的数学或逻辑操作,Swift包含丰富的内置运算符,并提供以下类型的运算符-算术运算符比较运算符逻辑运算符按位运算符范围运算符其它运算符本教程将逐一说明算术,关系,逻辑,按位,赋值和其他运算符。算术运算符下表显示了Swift4语言支持的所......
  • 无涯教程-Swift - 常量
    常数是指程序在执行过程中不得更改的固定值,常量可以是任何基本数据类型,如整数常量,浮点常量,字符常量或字符串文字,还有枚举常量。常量与常规变量一样,只是其值在定义后不能修改。常量声明使用常量之前,必须使用let关键字声明它们,如下所示:letconstantName=<initialvalue>以......
  • 无涯教程-Swift - 元组(Tuples)
    Swift4还引入了Tuples元组类型,该类型用于将多个值组合在单个复合值中,元组中的值可以是任何类型,并且不必是同一类型。如,("LearnFK",123)是一个具有两个值的元组,一个值是字符串Type,另一个是整数类型。这是元组声明的语法-varTupleName=(Value1,value2,…anynumberofval......
  • 无涯教程-Swift - 可选项
    Swift4还引入了Optionals类型,用于处理缺少值的情况,可选的选项是"有一个值,它等于x"或"根本没有值"。Optional是一种类型,实际上是Swift4的新函数枚举之一,它有两个可能的值,None和Some(T),其中T是Swift4中可用的正确数据类型关联值。这是一个可选的Integer整数声明-varper......