在伊德里斯定义我们称之为其他语言常量的惯用方法是什么?是这个吗?
<%@ page import="java.sql.*" %>
<%
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con=null;
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb","root","");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select idi from idmaker;");
String id1="";
while(rs.next()) {
id1=rs.getString(1);
}
long id2=0;
id2 = Integer.parseInt(id1);
id2=id2+1;
Long longInstance = new Long(id2);
String numberAsString = longInstance.toString();
out.write("<br>"+numberAsString);
String query = "TRUNCATE idmaker";
stmt.executeUpdate(query);
stmt.executeUpdate("insert into idmaker values('"+numberAsString+"');");
con.close();
} catch(Exception e) { }
%>
如果是这样,在REPL中我在声明后得到一个例外:
myConstant : String
myConstant = "some_constant1"
myConstant2 : Int
myConstant2 = 123
答案 0 :(得分:6)
是的,这是在Idris中定义常量的惯用方法(在源文件中)。
但是,在REPL中绑定名称时,需要使用带有显式类型注释的:let
指令,如下所示:
Idris> :let myConstant : String; myConstant = "some_constant1"
或有时Idris能够推断出类型:
Idris> :let myConstant = "some_constant1"
描述here。
答案 1 :(得分:1)
声明全局常量没什么特别之处。你这样做的方法是好的。
如果是这样,在REPL中我在声明后得到一个例外:
您使用的是哪种版本的Idris?在1.0上,一切正常。 你如何声明变量?在文件中,而不是在REPL中加载文件?