类 在 Swift
Classes in Swift
我是 Swift 的新手,正在学习 类。我的问题与该代码有关;
class someClass
{
class func typeMethod(string:String) -> String
{
return string + "_Modified....."
}
}
var strModify:String = "String"
someClass.typeMethod(strModify)
那是什么?在 C++ 等其他语言中有类似的东西吗?我们在哪里需要它?
好吧 class func
就像 Java 中的 static method
:
public static void staticMethod(){
}
关键是您不需要先创建 class 的对象才能使用它。
因此,只要不需要先构造对象,就应该使用 class 函数。
一个例子是像 convertMilimeterToCentimeter(milimeter:Int)
这样的转换方法。该方法获取要转换为参数的值,因此该方法的 'caller' 不需要是对象。所以你不需要在对象上调用它,但你可以在 class 本身上调用它:
YourClass.convertMilimeterToCentimeter(1000)
通常 Util-classes 主要有静态方法(例如 Apache Commons IO)
所以如果你在Swift中制作一个Util-class,你大部分时间会使用静态函数,因为不需要创建一个对象来执行这些方法。
是Swift中的类型方法。像一个全局函数,但是在 class 的命名空间中。它被称为 someClass.typeMethod()
,但没有 someClass
.
的实例
C++ 中的等价物是静态成员函数,例如
class SomeClass {
public:
static std::string method(const std::string& str) {
return str + "_Modified";
}
};
...
std::string s = SomeClass::method("test");
给出以下 class:
class SomeClass {
class func someClassFunction() {
}
func someFunction() {
}
}
两个函数的区别在于第一个函数,class
修饰符由class本身持有,而第二个函数someFunction()
由一个实例持有一个class。这改变了 how/when 你可以打电话给他们。例如,使用 class 函数,您不需要实例来调用该函数:
SomeClass.someClassFunction()
但是使用普通函数,您确实需要一个实例,您可以使用 ()
:
实例化它来创建实例
let foo = SomeClass()
foo.someFunction()
首先,第一行应为:
class SomeClass
Class 名称应为 UpperCamelCase。这声明我们正在制作一个 class(而不是结构或枚举)。
class func typeMethod(string:String) -> String
{
return string + "_Modified....."
}
这是 class 上的方法(与 class 实例上的方法相对。与 class 关联的函数称为方法。Swift 对所有函数和方法使用关键字 "func"。
(string:String) 位是函数单个参数的标签和类型。 “->String”位表示函数的 return 类型。默认情况下,在 Swift 中,函数的第一个参数的标签在调用 function/method:
时被删除
SomeClass.typeMethod("Hello World")
请注意,我使用了 UpperCamelCase,所以现在 reader 很清楚他们正在调用 class 方法而不是实例方法。消息被发送到 class 本身,而不是 class.
的特定实例
请注意,class 只有一个 class 方法,就像这个例子一样,是毫无意义的。您不妨创建一个简单的全局函数。 Swift 中有许多与任何 class、结构或枚举无关的全局函数。 countElements() 是此类函数的一个很好的例子。
还值得注意的是,此 class 不需要继承,这意味着它不需要是 class,即使您不想要全局函数。它可以很容易地定义为具有静态函数的结构。
你在哪里需要这样的东西取决于上下文。这个例子,像这样断章取义,除了展示一个 class 方法的例子之外看起来毫无意义。
我是 Swift 的新手,正在学习 类。我的问题与该代码有关;
class someClass
{
class func typeMethod(string:String) -> String
{
return string + "_Modified....."
}
}
var strModify:String = "String"
someClass.typeMethod(strModify)
那是什么?在 C++ 等其他语言中有类似的东西吗?我们在哪里需要它?
好吧 class func
就像 Java 中的 static method
:
public static void staticMethod(){
}
关键是您不需要先创建 class 的对象才能使用它。 因此,只要不需要先构造对象,就应该使用 class 函数。
一个例子是像 convertMilimeterToCentimeter(milimeter:Int)
这样的转换方法。该方法获取要转换为参数的值,因此该方法的 'caller' 不需要是对象。所以你不需要在对象上调用它,但你可以在 class 本身上调用它:
YourClass.convertMilimeterToCentimeter(1000)
通常 Util-classes 主要有静态方法(例如 Apache Commons IO)
所以如果你在Swift中制作一个Util-class,你大部分时间会使用静态函数,因为不需要创建一个对象来执行这些方法。
是Swift中的类型方法。像一个全局函数,但是在 class 的命名空间中。它被称为 someClass.typeMethod()
,但没有 someClass
.
C++ 中的等价物是静态成员函数,例如
class SomeClass {
public:
static std::string method(const std::string& str) {
return str + "_Modified";
}
};
...
std::string s = SomeClass::method("test");
给出以下 class:
class SomeClass {
class func someClassFunction() {
}
func someFunction() {
}
}
两个函数的区别在于第一个函数,class
修饰符由class本身持有,而第二个函数someFunction()
由一个实例持有一个class。这改变了 how/when 你可以打电话给他们。例如,使用 class 函数,您不需要实例来调用该函数:
SomeClass.someClassFunction()
但是使用普通函数,您确实需要一个实例,您可以使用 ()
:
let foo = SomeClass()
foo.someFunction()
首先,第一行应为:
class SomeClass
Class 名称应为 UpperCamelCase。这声明我们正在制作一个 class(而不是结构或枚举)。
class func typeMethod(string:String) -> String
{
return string + "_Modified....."
}
这是 class 上的方法(与 class 实例上的方法相对。与 class 关联的函数称为方法。Swift 对所有函数和方法使用关键字 "func"。
(string:String) 位是函数单个参数的标签和类型。 “->String”位表示函数的 return 类型。默认情况下,在 Swift 中,函数的第一个参数的标签在调用 function/method:
时被删除SomeClass.typeMethod("Hello World")
请注意,我使用了 UpperCamelCase,所以现在 reader 很清楚他们正在调用 class 方法而不是实例方法。消息被发送到 class 本身,而不是 class.
的特定实例请注意,class 只有一个 class 方法,就像这个例子一样,是毫无意义的。您不妨创建一个简单的全局函数。 Swift 中有许多与任何 class、结构或枚举无关的全局函数。 countElements() 是此类函数的一个很好的例子。
还值得注意的是,此 class 不需要继承,这意味着它不需要是 class,即使您不想要全局函数。它可以很容易地定义为具有静态函数的结构。
你在哪里需要这样的东西取决于上下文。这个例子,像这样断章取义,除了展示一个 class 方法的例子之外看起来毫无意义。