定制网站c++、php、java、python、javascript对比,同一功能用5种编程语言写一遍,谁才是最好的编程语言?

定制网站感觉编程语言里面,定制网站大家使用最多的就是这几种了吧,最火的是JavaScript,python定制网站好像说是无所不能,php定制网站没悬念还是世界上最好定制网站的编程语言,java定制网站用的人应该最多吧,c++吗,据说比较难,所以就是逼格最高的语言吧。

其实这几种语言,除了python,其他几个还都有共通之处,都是带花括号({})的C系语法,而python吧,不带花括号,感觉和之前的VBscript有点像,废话不多说,今天就用这5种语言写同一个功能,我一会分别把代码粘出来,大家对语法做一下比较,看看更喜欢那种?

昨天闲聊群里有人发了一串JavaScript代码,功能呢就是在控制台输出用字符拼出的字符画“V ME 50”,v me 50算是最近很火的一个梗了,运行效果如下图

 代码如下:

  1. const arr = [
  2.   [1, 9, 12, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44],
  3.   [2, 8, 12, 13, 19, 20, 23, 31, 39, 44],
  4.   [3, 7, 12, 14, 18, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 44],
  5.   [4, 6, 12, 15, 17, 20, 23, 36, 39, 44],
  6.   [5, 5, 12, 16, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44],
  7. ];
  8. function demo(arr) {
  9.   let str = '';
  10.   for (let i = 0; i < arr.length; i++) {
  11.     for (j = 0; j < 50; j++) {
  12.       if (arr[i].indexOf(j) > -1) {
  13.         str += '█';
  14.       } else {
  15.         str += ' ';
  16.       }
  17.     }
  18.     str += '';
  19.   }
  20.   return str;
  21. }
  22. console.log(demo(arr));

看着挺有意思吧,然后我把这段代码移植到了C++上,代码和效果如下:

  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. using namespace std;
  5. class vMe50{
  6. private:
  7. template <typename T>
  8. int arrLen(T& arr){
  9. return sizeof(arr)/sizeof(arr[0]);
  10. }
  11. public:
  12. vMe50(){
  13. string str=this->demo();
  14. cout << str;
  15. }
  16. string demo(){
  17. vector<vector<int> > arr;
  18. int a0[]={1, 9, 12, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44};
  19. int a1[]={2, 8, 12, 13, 19, 20, 23, 31, 39, 44};
  20. int a2[]={3, 7, 12, 14, 18, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 44};
  21. int a3[]={4, 6, 12, 15, 17, 20, 23, 36, 39, 44};
  22. int a4[]={5, 5, 12, 16, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44};
  23. vector<int> b0(a0,a0+this->arrLen(a0));
  24. vector<int> b1(a1,a1+this->arrLen(a1));
  25. vector<int> b2(a2,a2+this->arrLen(a2));
  26. vector<int> b3(a3,a3+this->arrLen(a3));
  27. vector<int> b4(a4,a4+this->arrLen(a4));
  28. arr.push_back(b0);
  29. arr.push_back(b1);
  30. arr.push_back(b2);
  31. arr.push_back(b3);
  32. arr.push_back(b4);
  33. string str;
  34. for(short i=0;i<arr.size();i++){
  35. for(short j=0;j<50;j++){
  36. if(count(arr[i].begin(), arr[i].end(), j)){
  37. str+="0";
  38. }else{
  39. str+=" ";
  40. }
  41. }
  42. str+="\";
  43. }
  44. return str;
  45. }
  46. };
  47. int main(){
  48. vMe50* v=new vMe50();
  49. delete v;
  50. return true;
  51. }

效果一样,但代码麻烦了不少,毕竟C++是强类型语言,处理不规则数组不像JavaScript那样轻松。 

然后我又把代码移植到了世界上最好的编程语言php上,大家看下优不优雅,代码和效果如下

  1. <?php
  2. namespace vMe50;
  3. class vMe50{
  4. public function __construct(){
  5. echo $this->demo();
  6. }
  7. private function demo(){
  8. $arr=[
  9. [1, 9, 12, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44],
  10. [2, 8, 12, 13, 19, 20, 23, 31, 39, 44],
  11. [3, 7, 12, 14, 18, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 44],
  12. [4, 6, 12, 15, 17, 20, 23, 36, 39, 44],
  13. [5, 5, 12, 16, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44],];
  14. $str="";
  15. foreach($arr as $key=>&$value){
  16. foreach(range(0,50) as $k=>&$v){
  17. if(in_array($v, $value)){
  18. $str.="8";
  19. }else{
  20. $str.=" ";
  21. }
  22. }
  23. $str.="\";
  24. }
  25. return $str;
  26. }
  27. }
  28. new vMe50();

 确实比C++版简单不少,毕竟php的array实现了各种类型的数组。

然后我又把代码用java重写一遍,代码和效果如下:

  1. import java.util.Arrays;
  2. import java.util.List;
  3. import java.util.LinkedList;
  4. public class vMe50{
  5. public static void main(String[] args){
  6. System.out.print(
  7. demo()
  8. );
  9. }
  10. private static String demo(){
  11. List<List<Integer> > arr=new LinkedList<>();
  12. arr.add(new LinkedList<>(Arrays.asList(1, 9, 12, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44)));
  13. arr.add(new LinkedList<>(Arrays.asList(2, 8, 12, 13, 19, 20, 23, 31, 39, 44)));
  14. arr.add(new LinkedList<>(Arrays.asList(3, 7, 12, 14, 18, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 44)));
  15. arr.add(new LinkedList<>(Arrays.asList(4, 6, 12, 15, 17, 20, 23, 36, 39, 44)));
  16. arr.add(new LinkedList<>(Arrays.asList(5, 5, 12, 16, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44)));
  17. String str="";
  18. for(int i=0;i<arr.size();i++){
  19. for(int j=0;j<50;j++){
  20. if(arr.get(i).contains(j)){
  21. str+="8";
  22. }else{
  23. str+=" ";
  24. }
  25. }
  26. str+="\";
  27. }
  28. return str;
  29. }
  30. }

 最后就再用无所不能的python语言重写一遍吧,代码和效果如下:

  1. class vMe50:
  2. def __init__(self):
  3. print(self.demo())
  4. def demo(self):
  5. arr=(
  6. (1, 9, 12, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44),
  7. (2, 8, 12, 13, 19, 20, 23, 31, 39, 44),
  8. (3, 7, 12, 14, 18, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 44),
  9. (4, 6, 12, 15, 17, 20, 23, 36, 39, 44),
  10. (5, 5, 12, 16, 20, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44)
  11. )
  12. str=""
  13. for i in arr:
  14. for j in range(0,50):
  15. if j in i:
  16. str+="8"
  17. else:
  18. str+=" "
  19. str+="\";
  20. return str
  21. v=vMe50();

 

虽然我个人不喜欢python,因为他没有花括号,但感觉他确实diao,这几个版本里代码量最小,甚至比JavaScript还简单。

以上就是c++、php、java、python、javascript这五种编程语言语法的对比,到底谁才是最好的编程语言?

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发