我了解structs
中swift
pass-by-value
struct
为encapsulating
。我使用struct
为structs
一些信息添加inout
到一个集合,然后更改其值的一小部分。然而;我似乎遇到了struct
未正确更新的问题,即使我在参数需要struct
的地方撒了关键字pointer
。我的直觉是为class
分配内存并在其<?php
//blablabla my php stuff here...
?>
<h2 class="page_title">
<?=htmlentities($db_field['Title'])?>
</h2>
<a onclick="showAndroidToast('<?=$_SESSION[\'user_id\']?>','<?=$db_field[\'ID\']?>');
<img src="/mobile/images/plus.png" style="width:25px;height:25px;float:right;margin-top:15px">
</a>
的集合中引用它。简单地使用 function wypisz()
{
var liczba1 = parseInt(document.getElementById("pole1").value);
var liczba2 = parseInt(document.getElementById("pole2").value);
var napis = "";
for (i=liczba1; i<=liczba2; i++)
{
napis = napis + i + " ";
console.log('inseide');
}
document.getElementById("wynik").innerHTML = napis;
}
是否有意义,即使我需要的是可以改变的值列表。
答案 0 :(得分:1)
如果你需要引用语义,那么绝对使用一个类。如果您希望能够在数据结构以及其他位置修改对象,那么您就需要一个类。使用类来获取引用语义是完全合理的。
同样你知道,inout on a function parameter实际上并不意味着通过引用传递。实际发生的是你的结构的副本是由函数创建的。然后在函数中修改此副本,然后将其复制回原始变量。
答案 1 :(得分:0)
没有你的代码,我无法看到你做错了什么,但它对我有用 - 游乐场最小的例子:
struct Grimxn {
var first: Int
var second: Int
}
func modify(inout v: Grimxn) {
v.first++
v.second--
}
var a = Grimxn(first: 1, second: 2)
print("\(a)") // "Grimxn(first: 1, second: 2)\n"
modify(&a)
print("\(a)") // "Grimxn(first: 2, second: 1)\n" - as required?
我当然不想使用指针 - 为什么在Swift中使用指针 - 使用C!