Vb中自定义函数的返回值包含自身,这种情况如何判断?求解释

Private Sub Command1__Click()
Print test("abc")
End Sub

Function test(s As String) As String
For i = 1 To 3
test = Mid(s, i, 1) + test
Next i
End Function

输出的结果是“cba”,变成字符串拼接的操作了,不是很理解里面的原理。求解释

5个回答

原理如下:
VB里函数中出现“自身”,并不是自我调用,而只是变量。
因此,在这里,
一开始,test 缺省为空,循环中:
第一次赋值,相当于 test ="a" + 空 = "a"
第二次,test = "b" + "a" = "ba"
……

dd3845
一声-汪 您说VB里函数中出现“自身”,并不是自我调用,而只是变量。。那么什么时候才会作为返回值返回至调用处呢?
2 年多之前 回复

对于这类字符串我也不是很清楚

i=1,mid取a,i=2,mid取不,i=3mid取c。关键是拼接,每次取字符后都是把取的字符拼接在原字符串之前(test = 每次取的字符 + test)。

i=1 mid(s,1,1)是a,test=a
i=2 mid(s,2,1)是b,test=b+a 就是ba
i=3 mid(s,3,1)是c,test=c+ba 就是cba

原理如下:
VB里函数中出现“自身”,并不是自我调用,而只是变量。
因此,在这里,
一开始,test 缺省为空,循环中:
第一次赋值,相当于 test ="a" + 空 = "a"
第二次,test = "b" + "a" = "ba"
……

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问