AI写代码! 神器copilot介绍+安装+使用
!郑重提示!!!!!!!:
正在学编程、算法的同学请千万不要依赖此插件,否则你可能甚至无法手写出一个for循环#
AI帮我写代码?我帮AI写代码?庄周梦蝶?蝶梦庄周?十分梦幻。#
copilot在VScode和IDEA上都有,我们先在VScode上演示一下,然后告诉大家如何安装使用。
今天早上突然收到邮件通知我获得了使用copilot预览版的权限,是的,使用这个插件需要申请,不过流程很快,待会细说,先来看看效果(这个插件直接下巴都给我震碎了)
Copilot效果演示:#
那我们使用这个插件来实现一下求两个字符串的最长公共子串长度试一下:
我仅仅写了一个函数名。。。就已经给我写完了?但是我想换一种写法,看看他能提供什么样的帮助:
-
设置一个boolean数组dp,dp[i][j]: str1[i]==str2[j],设置一个maxStart表示最长公共子串的起始下标,maxLen表示最长公共子串的长度:
彩蛋:它好像懂了我的代码想要干什么。。并且尝试帮我生成注释:
-
那好吧,我们依据copilot读懂得我的思路,来写一个for循环:
这次我们试试写注释,让它帮我直接生成代码:
for循环里面的业务应该是写错了,因为dp不需要通过递推实现。
我们自己实现一下,通过另外一个变量k,来寻找最长的斜线:
真厉害。。稍加提示立马就知道我要干什么。。。这确实是我设想的实现代码。。
我服了。。它太懂我了
但是应该还是需要更正优化一下,在while循环中,应当加上
&&!dp[i + k][j + k]!
这个条件,否则在遍历时会重复判断重复累加k。
代码放这了,因为这个代码跟我之前自己写得简直一模一样,我就不测试了,大家如果有疑问可以拿去测试一下
点击查看代码
public String longestCommonSubstring(String str1, String str2){
if(str1==null||str2==null) return null;
int n=str1.length();
int m=str2.length();
if(n==0||m==0) return null;
boolean [][] dp=new boolean[n][m];
int maxStart=0, maxLen=0;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
int k=0;
while(i+k<m&&j+k<n&&str1.charAt(j+k)==str2.charAt(i+k)&&!dp[i + k][j + k]){
dp[j][i]=true;
k++;
}
if(k>maxLen){
maxLen=k;
maxStart=i;
}
}
}
return str2.substring(maxStart, maxStart+maxLen);
}
更新#
Copilot的安装使用:以VScode为例#
首先在插件商店中安装这个插件,然后它会要求你登录github,按照要求登录即可,之后它会告诉你没有权限使用copilot,因此需要去申请,申请完之后会进入wait list,大概等个两三天之后,就会收到邮件,就可以愉快地手撕代码了
这里是官方getting start文档:
https://github.com/github/copilot-docs/blob/main/docs/visualstudiocode/gettingstarted.md#getting-started-with-github-copilot-in-visual-studio-code
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?