An article to help you understand the analysis of parameter passing principles (java, go, python, c++)

Foreword In the past year or so, I have been exposed to some languages ​​that are unfamiliar to me, mainly Python and Go. During this period, in order to quickly realize the needs, I just followed the example. Lao’s code; I didn’t delve into some details and principles. Take parameter passing as an example. The implementation details of each language are different, but there are similarities; it is easy for many novices to be confused when they get started, leading to some low-level mistakes. Java Basic type transfer Let’s take Java, which I am most familiar with, as an example. I believe no one can write such code: @Test public void testBasic() { int a = 10; modifyBasic(a); System.out.println(String.format(“Final result main a==%s”, a)); } private void modifyBasic(int aa) { System.out.println(String.format(“aa==%s”, aa)); aa = 20; System.out.println(String.format(“After modification aa==%s”, aa)); } Output results: Before modification aa==10 After modification aa==20 Final result main a==10 However, judging from the purpose of this code, it should be to modify the value of a. Intuitively, it is understandable if the modification is successful. The fundamental reason why the results are not in line with expectations is the misunderstanding of parameter value passing and reference passing. Before…

An article to help you understand the analysis of parameter passing principles (java, go, python, c++)

An article to help you understand the analysis of parameter passing principles (java, go, python, c++)

Foreword In the past year or so, I have been exposed to some languages ​​that are unfamiliar to me, mainly Python and Go. During this period, in order to quickly realize the needs, I just followed the example. Lao’s code; I didn’t delve into some details and principles. Take parameter passing as an example. The implementation details of each language are different, but there are similarities; it is easy for many novices to be confused when they get started, leading to some low-level mistakes. Java Basic type transfer Let’s take Java, which I am most familiar with, as an example. I believe no one can write such code: @Test public void testBasic() { int a = 10; modifyBasic(a); System.out.println(String.format(“Final result main a==%s”, a)); } private void modifyBasic(int aa) { System.out.println(String.format(“aa==%s”, aa)); aa = 20; System.out.println(String.format(“After modification aa==%s”, aa)); } Output results: Before modification aa==10 After modification aa==20 Final result main a==10 However, judging from the purpose of this code, it should be to modify the value of a. Intuitively, it is understandable if the modification is successful. The fundamental reason why the results are not in line with expectations is the misunderstanding of parameter value passing and reference passing. Before…

An article to help you understand the analysis of parameter passing principles (java, go, python, c++)

Foreword In the past year or so, I have been exposed to some languages ​​that are unfamiliar to me, mainly Python and Go. During this period, in order to quickly realize the needs, I just followed the example. Lao’s code; I didn’t delve into some details and principles. Take parameter passing as an example. The implementation details of each language are different, but there are similarities; it is easy for many novices to be confused when they get started, leading to some low-level mistakes. Java Basic type transfer Let’s take Java, which I am most familiar with, as an example. I believe no one can write such code: @Test public void testBasic() { int a = 10; modifyBasic(a); System.out.println(String.format(“Final result main a==%s”, a)); } private void modifyBasic(int aa) { System.out.println(String.format(“aa==%s”, aa)); aa = 20; System.out.println(String.format(“After modification aa==%s”, aa)); } Output results: Before modification aa==10 After modification aa==20 Final result main a==10 However, judging from the purpose of this code, it should be to modify the value of a. Intuitively, it is understandable if the modification is successful. The fundamental reason why the results are not in line with expectations is the misunderstanding of parameter value passing and reference passing. Before…

Contact Us

Contact us

181-3619-1160

Online consultation: QQ交谈

E-mail: 34331943@QQ.com

Working hours: Monday to Friday, 9:00-17:30, holidays off

Follow wechat
Scan wechat and follow us

Scan wechat and follow us

Follow Weibo
Back to top
首页
微信
电话
搜索