惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
T
Threat Research - Cisco Blogs
H
Hacker News: Front Page
N
News and Events Feed by Topic
Know Your Adversary
Know Your Adversary
Cisco Talos Blog
Cisco Talos Blog
SecWiki News
SecWiki News
C
Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tor Project blog
K
Kaspersky official blog
Forbes - Security
Forbes - Security
Webroot Blog
Webroot Blog
Schneier on Security
Schneier on Security
P
Privacy & Cybersecurity Law Blog
H
Heimdal Security Blog
Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
S
SegmentFault 最新的问题
V
Vulnerabilities – Threatpost
T
Tenable Blog
T
Tailwind CSS Blog
P
Privacy International News Feed
WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
博客园 - Franky
Hacker News: Ask HN
Hacker News: Ask HN
Jina AI
Jina AI
C
Cybersecurity and Infrastructure Security Agency CISA
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
雷峰网
雷峰网
Vercel News
Vercel News
A
About on SuperTechFans
爱范儿
爱范儿
Simon Willison's Weblog
Simon Willison's Weblog
AWS News Blog
AWS News Blog
The Last Watchdog
The Last Watchdog
Engineering at Meta
Engineering at Meta
Spread Privacy
Spread Privacy
Security Archives - TechRepublic
Security Archives - TechRepublic
博客园 - 司徒正美
量子位
博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
Hacker News - Newest:
Hacker News - Newest: "LLM"
Recorded Future
Recorded Future
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Martin Fowler
Martin Fowler
Project Zero
Project Zero

博客园 - Wisdom-zh

【关注】“诋毁” 一下博客园的模板 混淆器【修正版】 发一个混淆器, Nuva 写的 Win32Ole 演示【控制 Word】 Win32Api 演示【控制任务栏】 通用数据浏览示例 方便的 XML 数据绑定 延迟计算 短路运算 语法兼容 之 运算符总结 这是什么语言的代码 Nuva 语法兼容 之 控制结构总结 设计模式 之 状态机模式 Nuva 示例代码(每日一帖)之 源代码统计 Nuva 示例代码(每日一帖)之 数据架构提取 Nuva 示例代码(每日一帖)之 ShowMessage Nuva 示例代码(每日一帖)之 异常处理 Nuva 示例代码(每日一帖)之 语法兼容 挑战 XSLT 最擅长的 XML 文档转换
Swap 函数
Wisdom-zh · 2006-09-25 · via 博客园 - Wisdom-zh
<..========================================================
==                                                       ==
==                Macrobject Nuva Samples                ==
==                                                       ==
==      Copyright (c) 2004-2006 Macrobject Software      ==
==                                                       ==
==                  ALL RIGHTS RESERVED                  ==
==                                                       ==
==               http://www.macrobject.com               ==
==                                                       ==
========================================================..>
<.
  function Swap(a1, a2)
    var tmp = a1
    a1      = a2
    a2      = tmp
  end function

  var a = 'a'
  var b = 'b'

  ?? '==init value' 
  ?? 'a = ' + a
  ?? 'b = ' + b

  Swap(ref a, ref b)

  ?? '==swap value - success'
  ?? 'a = ' + a
  ?? 'b = ' + b

  Swap(a, a)

  ?? '==swap value - failure'
  ?? 'a = ' ~ a
  ?? 'b = ' ~ b
.>


<..
【简介】
    这是一个函数调用的参数传递示例。
   
    在 Nuva 语言中,函数参数默认按照传值的方式传递,对象类型则传递对象引用。
   
    可以在函数调用的时候明确指明是否采用传址的方式,ref 关键字可以用于指明这种用法。

【看点】
    本例中 Swap 函数与一般函数没什么分别,函数的功能就是交换传进来的两个参数。
   
    在调用 Swap 函数的时候,如果参数都加了 ref 引用,则 Swap 能将两个参数的值交换成功。否则,在调用 Swap 函数之后,这两个变量的值没有改变。
   
    运行结果证实了这一点。

【扩展】
    本例为了演示 ref 参数的用法,以一个 Swap 函数作为例子。ref 参数可以用于多种场合。

【运行结果】
    ==init value
    a = a
    b = b
    ==swap value - success
    a = b
    b = a
    ==swap value - failure
    a = b
    b = a
..>