{"id":23478,"date":"2024-03-16T01:29:05","date_gmt":"2024-03-16T01:29:05","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/"},"modified":"2024-03-22T01:22:02","modified_gmt":"2024-03-22T01:22:02","slug":"how-to-declare-an-interface-using-the-go-interface-keyword","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/","title":{"rendered":"How to declare an interface using the go interface keyword?"},"content":{"rendered":"<p>In Go language, you can use the type keyword to declare an interface. An interface is an abstract type that defines a set of methods without any specific implementation. The syntax for declaring an interface is as follows:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">type<\/span> \u63a5\u53e3\u540d <span class=\"hljs-keyword\">interface<\/span> {\r\n    \u65b9\u6cd5\u540d<span class=\"hljs-number\">1<\/span>(\u53c2\u6570\u5217\u8868) \u8fd4\u56de\u503c\u5217\u8868\r\n    \u65b9\u6cd5\u540d<span class=\"hljs-number\">2<\/span>(\u53c2\u6570\u5217\u8868) \u8fd4\u56de\u503c\u5217\u8868\r\n    <span class=\"hljs-comment\">\/\/ ...<\/span>\r\n}\r\n<\/code><\/pre>\n<p>For example, let&#8217;s say we want to define an Animal interface with a Speak method.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">type<\/span> Animal <span class=\"hljs-keyword\">interface<\/span> {\r\n    Speak() <span class=\"hljs-type\">string<\/span>\r\n}\r\n<\/code><\/pre>\n<p>This interface represents animals that can make sounds. Any type that implements the Speak method can be considered as an implementation type of the Animal interface. The methods of the interface do not need to be explicitly implemented, as long as the method name, parameter list, and return value list match the interface definition.<\/p>\n<p>Here is an example of the Cat type implementing the Animal interface:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">type<\/span> Cat <span class=\"hljs-keyword\">struct<\/span>{}\r\n\r\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">func<\/span> <span class=\"hljs-params\">(c Cat)<\/span><\/span> Speak() <span class=\"hljs-type\">string<\/span> {\r\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">\"Meow!\"<\/span>\r\n}\r\n<\/code><\/pre>\n<p>In this example, the Cat type implements the Speak method of the Animal interface, and returns the string &#8220;Meow!&#8221;.<\/p>\n<p>You can use the interface in the following ways:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-function\"><span class=\"hljs-keyword\">func<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span><\/span> {\r\n    <span class=\"hljs-keyword\">var<\/span> animal Animal\r\n    animal = Cat{}\r\n    fmt.Println(animal.Speak()) <span class=\"hljs-comment\">\/\/ \u8f93\u51fa\uff1a\"Meow!\"<\/span>\r\n}\r\n<\/code><\/pre>\n<p>In the main function, we declared a variable named animal of type Animal, and then assigned an instance of type Cat to it. Next, we called the animal.Speak() method, which outputted &#8220;Meow!&#8221;.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Go language, you can use the type keyword to declare an interface. An interface is an abstract type that defines a set of methods without any specific implementation. The syntax for declaring an interface is as follows: type \u63a5\u53e3\u540d interface { \u65b9\u6cd5\u540d1(\u53c2\u6570\u5217\u8868) \u8fd4\u56de\u503c\u5217\u8868 \u65b9\u6cd5\u540d2(\u53c2\u6570\u5217\u8868) \u8fd4\u56de\u503c\u5217\u8868 \/\/ &#8230; } For example, let&#8217;s say we want [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-23478","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to declare an interface using the go interface keyword? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to declare an interface using the go interface keyword?\" \/>\n<meta property=\"og:description\" content=\"In Go language, you can use the type keyword to declare an interface. An interface is an abstract type that defines a set of methods without any specific implementation. The syntax for declaring an interface is as follows: type \u63a5\u53e3\u540d interface { \u65b9\u6cd5\u540d1(\u53c2\u6570\u5217\u8868) \u8fd4\u56de\u503c\u5217\u8868 \u65b9\u6cd5\u540d2(\u53c2\u6570\u5217\u8868) \u8fd4\u56de\u503c\u5217\u8868 \/\/ ... } For example, let&#8217;s say we want [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-16T01:29:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T01:22:02+00:00\" \/>\n<meta name=\"author\" content=\"Olivia Parker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Olivia Parker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/\"},\"author\":{\"name\":\"Olivia Parker\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\"},\"headline\":\"How to declare an interface using the go interface keyword?\",\"datePublished\":\"2024-03-16T01:29:05+00:00\",\"dateModified\":\"2024-03-22T01:22:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/\"},\"wordCount\":191,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/\",\"name\":\"How to declare an interface using the go interface keyword? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T01:29:05+00:00\",\"dateModified\":\"2024-03-22T01:22:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to declare an interface using the go interface keyword?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\",\"name\":\"Olivia Parker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"caption\":\"Olivia Parker\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to declare an interface using the go interface keyword? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/","og_locale":"en_US","og_type":"article","og_title":"How to declare an interface using the go interface keyword?","og_description":"In Go language, you can use the type keyword to declare an interface. An interface is an abstract type that defines a set of methods without any specific implementation. The syntax for declaring an interface is as follows: type \u63a5\u53e3\u540d interface { \u65b9\u6cd5\u540d1(\u53c2\u6570\u5217\u8868) \u8fd4\u56de\u503c\u5217\u8868 \u65b9\u6cd5\u540d2(\u53c2\u6570\u5217\u8868) \u8fd4\u56de\u503c\u5217\u8868 \/\/ ... } For example, let&#8217;s say we want [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T01:29:05+00:00","article_modified_time":"2024-03-22T01:22:02+00:00","author":"Olivia Parker","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Olivia Parker","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/"},"author":{"name":"Olivia Parker","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9"},"headline":"How to declare an interface using the go interface keyword?","datePublished":"2024-03-16T01:29:05+00:00","dateModified":"2024-03-22T01:22:02+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/"},"wordCount":191,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/","name":"How to declare an interface using the go interface keyword? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T01:29:05+00:00","dateModified":"2024-03-22T01:22:02+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-declare-an-interface-using-the-go-interface-keyword\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to declare an interface using the go interface keyword?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9","name":"Olivia Parker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","caption":"Olivia Parker"},"url":"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/23478","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=23478"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/23478\/revisions"}],"predecessor-version":[{"id":57457,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/23478\/revisions\/57457"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=23478"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=23478"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=23478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}