atitit.复合变量,也就是类似$$a的变量的原理与实现 java c#.net php js

1.1. 复合变量,也就是类似$$a的变量,它会进行两次的解释。 1

1.2. 数据库里面的复合变量1

1.3. 为什么只有php实现了符合变量,因为他的美元符号2

1.4. 符合变量的本质其实就是指针了2

2. 使用java实现符合变量2

2.1. invoke2

2.2. 实现2

3. 参考4

1.1. 复合变量,也就是类似$$a的变量,它会进行两次的解释。

这给PHP带来了非常灵活的动态特性。

1.2. 数据库里面的复合变量

记录(Record)

什么是记录:

记录是由几个相关值构成的复合变量,常用于支持SELECT语句的返回值。使用记录可以将一行数据看成是一个单元进行处理,而不必将每一列单独处理,和面向对象程序设计语言里面的对象或者C语言的结构体类似。

PLSQL复合变量

复合变量指用于存放多个值的变量。定义复合变量时,必须要使用PL/SQL的复合数据类型。PL/SQL包括
PL/SQL记录、PL/SQL表、嵌套表及VARRAY等四种复合数据类型。

1.3. 为什么只有php实现了符合变量,因为他的美元符号

Dollar继承自perl。。。

Dollar也不是必须的。。只需要在使用的时候致命dollar就ok懒。。Not nessury  var must  dollar start。。

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

1.4. 符合变量的本质其实就是指针了

2. 使用java实现符合变量

2.1. invoke

import static aaa.VarUtil.*;

public class DynaVar {

public static void main(String[] args) {

def("$a","v_a");

def("$b", "a");

echo($("$b"));

echo($("$$b"));

}

2.2. 实现

package aaa;

import java.util.Map;

import com.attilax.lang.AString;

import com.google.common.collect.Maps;

public class VarUtil {

public static Map vars_map=Maps.newConcurrentMap();

/**

* //var use

* @param var_name

* @return

*/

public static Object $(String var_name) {

int dollarIndex=var_name.lastIndexOf("$");

if(dollarIndex==0)

return  vars_map.get(var_name);

String left=AString.Left(var_name, dollarIndex);

String rit=  var_name.substring(dollarIndex);

char[] a=left.toCharArray();

Object var_v= vars_map.get(rit);

for (int i = 0; i < a.length; i++) {

String new_var_name="$"+var_v.toString();

var_v=vars_map.get(new_var_name);

}

return var_v;

}

////var define

public static void def(String var_name, String var_val) {

vars_map.put(var_name, var_val);

}

public static void echo(Object get_var) {

System.out.println(get_var);

}

/**

* //var use

* @param var_name

* @return

*/

//public static Object $(String var_name) {

//// TODO Auto-generated method stub

//return vars_map.get(var_name);

//}

}

3.  参考

PLSQL复合变量与参照变量 - 蓝紫 - 博客园.htm

随机推荐

  1. Jenkins集成SonarQube

    sonar安装配置 准备软件包 安装 mysql5.6+ 创建数据库sonar,字符集编码utf8 新建用户如heboan 因为sonarqube不能使用root用户运行 调整系统参数,/etc/se ...

  2. 北京DAY1下午

    省选模拟题 周子凯 题目概况 中文题目名 简易比特币 计算 路径 英文题目名 bit calculation Path 输入文件名 bit.in calculation.in path.in 输出文件 ...

  3. POJ 2186 Popular Cows(强连通分量)

    [题目链接] http://poj.org/problem?id=2186 [题目大意] 给出一张有向图,问能被所有点到达的点的数量 [题解] 我们发现能成为答案的,只有拓扑序最后的SCC中的所有点, ...

  4. 【枚举】【前缀和】【map】ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined) C. Molly's Chemicals

    处理出前缀和,枚举k的幂,然后从前往后枚举,把前面的前缀和都塞进map,可以方便的查询对于某个右端点,有多少个左端点满足该段区间的和为待查询的值. #include<cstdio> #in ...

  5. 【计算几何】【辛普森积分法】UVALive - 7076 - Highway

    春节前后想了好久才在队友的讲解下想明白…… 太难讲了,我就不讲了,大概就是考虑直着走到高速上还是斜着走到高速上,然后平移直线和大圆相切,把生成的最大的“桥”和大圆并一下就行了. #include< ...

  6. Eclipse / Pycharm | 使用过程中的一些问题笔记

    最近有比较多的用到这两款工具,其中也遇到一些问题,知道了一些快捷键 快捷键什么的这里就不讲了,去网上搜搜,经常使用下,自然就熟悉了 主要记录一下我遇到的几个问题 文章目录 Pycharm出现的部分快捷 ...

  7. Xcode8 不能显示blame,show blame for line 灰色不可点解决办法

    1.原因 创建工程时没勾选create git repository 2.解决办法 ➜  ~  cd /Users/zhanglinfeng/Documents/EastMoney/EMLive  / ...

  8. XCode编译速度慢的解决方案

    提升编译链接的速度主要有以下三个方式: 1. 提高XCode编译时使用的线程数 defaults write com.apple.Xcode PBXNumberOfParallelBuildSubta ...

  9. druid 配置监控界面和开启spring支持

    1.配置监控页面 <!-- JNDI方式配置数据源 --> <!-- <bean id="dataSource" class="org.sprin ...

  10. WebLogic Server 关键优化指标

    昨天给客户做巡检,又将整个WebLogic Server的优化过程走了一遍,记录下来给大家参考. 1.JVM优化 查看 $ps –ef | grep java /opt/java1.5/bin/jav ...