【问题标题】:Object interaction through object-specific method通过对象特定方法进行对象交互
【发布时间】:2017-03-14 16:31:23
【问题描述】:

我正在尝试生成一个涉及唯一启动对象、目标对象和路径对象的函数,其中启动对象和目标对象属于同一类A,而路径对象属于不同的类B。这个特定函数的理想输出应该是input A1, A2 to B1;但是,结果是input , to B1:

import UIKit
var interA = ""
var interB = ""
class A {
//Where any unique unit in A must interact with any other unique unit in A through a unique path B.
    var name = "name"
}
class B {
    var path = "path"
}
func action(user: A, medium: B, target: A) {
    interA = user.name
    interB = target.name
    print(medium.path)
}
var A1 = A()
A1.name = "A1"
var A2 = A()
A2.name = "A2"
var B1 = B()
B1.path = "input \(interA), \(interB) to B1" //String simplification of multivariate function f(AI, AJ)
action(user: A1, medium: B1, target: A2) //Should show up as "input A1, A2 to B1"

感谢任何问题的解决方案或更简化的方法。 (此函数的未来输入理想情况下应包括 AI、AJ 和 BK 的所有可能排列,用于正整数 I、J 和 K。)

【问题讨论】:

    标签: swift function methods


    【解决方案1】:

    您在action 有机会更新用户/目标值之前设置路径变量。 “\()”值的替换发生在字符串被求值时一次,而不是动态的。

    【讨论】:

    • 如何修改函数以动态更新变量?
    • 将medium.path = "input \(interA), \(interB) to B1" 放在action 中设置变量之后和print 之前。
    • 如果所有B 路径都等于"input \(interA), \(interB) to B1",这将起作用,但如果B2.path = "\(interA) + \(interB)"、B3.path = B3((interA))` ...` 等则不行。我怎么能动态更新变量,同时为 B 维护唯一的对象 A 相关路径?
    • 必须知道对象需要的路径格式。无论那个东西是什么,还需要知道变量何时发生变化,并然后告诉对象更新其路径。 (或者,对象知道自己的路径格式,并在变量发生变化时更新路径。)
    猜你喜欢
    • 2021-04-17
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    • 2014-07-12
    • 2013-03-19
    相关资源
    最近更新 更多