1958 - LISP
1959 - COBOL
1964 - BASIC
1970 - Pascal
1967-1978:确立了根本范式1972 -
C措辞
1975 - Scheme
1978 - SQL (起初只是一种查询措辞,扩充之后也具备了程序构造)
1980年代:增强、模块、性能1983 -
C++ (就像有类别的C)
1988 - Tcl
1990年代:互联网时期1991 -
Python
1991 - Visual Basic
1993 -
Ruby
1995 -
Java
1995 - Delphi (Object Pascal)
1995 -
JavaScript
1995 -
PHP
2009 -
Go
2014 -
Swift (编程措辞)
1.1 在C++中首次涌现substr()
在c措辞中,并没有涌现substr或者substring方法。然而在1983,substr()方法已经涌如今C++措辞中了。然而这时候还没有涌现substring, 以是可以见得:
substr是stustring的老大哥
string substr (size_t pos = 0, size_t len = npos) const;
从C++的方法定义中可以看到,
substr的参数是开始下标,以及字符串长度。
std::string str=\公众We think in generalities, but we live in details.\公众; std::string str2 = str.substr (3,5); // \"大众think\"大众
1.2 在Java中首次涌现substring()
间隔substr()方法涌现已经有了将近十年之隔,此间呈现一批后起之秀,如: Python, Ruby, VB之类,然而他们之中并没有stustring的基因,在Java的String类中,我们看到两个方法。从这两个方法之中我们可以看到:substring方法基本原型的参数是开始和结束的下标。
String substring(int beginIndex) // 返回一个新的字符串,它是此字符串的一个子字符串。String substring(int beginIndex, int endIndex)// 返回一个新字符串,它是此字符串的一个子字符串。
1.3 JavaScript的历史继续
1995年,网景公司招募了Brendan Eich,目的是将Scheme编程措辞嵌入到Netscape Navigator中。在开始之前,Netscape Communications与Sun Microsystems公司互助,在Netscape Navigator中引入了更多的静态编程措辞Java,以便与微软竞争用户采取Web技能和平台。网景公司决定,他们想创建的脚本措辞将补充Java,并且该当有一个类似的语法,打消采取Perl,Python,TCL或Scheme等其他措辞。为了守卫对竞争性提案的JavaScript的想法,公司须要一个原型。 1995年5月,Eich在10天内写完。上帝用七天韶光创造万物, Brendan Eich用10天韶光创造了一门措辞。或许用创造并不得当,由于JavaScript是站在了Perl,Python,TCL或Scheme等其他巨人的肩膀上而产生的。
JavaScript并不像C那样出身名门,在贝尔实验室精心打造,但是JavaScript在今后的
自然选择
中,并没有因此冷落,反而借助于C,C++, Java, Perl,Python,TCL, Scheme精良基因,进化出更加强大强大的生命力。
因此可以想象,在10天之内,当Brendan Eich写到String的substr和substring方法时,或许他并没困惑着两个方法的参数该当如何设置,
由于在C++和Java的实现中,已经有了类似的定义。
如果你理解历史,你就不会困惑现在。
2 以是,substr和substring究竟有什么不同?
如下图所示:substr和substring都接管两个参数,他们的第一个参数的含义是相同的,
不同的是第二个参数。substr的第二个参数是到达结束点的间隔,substring是结束的位置。