-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
맵 예제 코드가 바이러스 검사에 걸려요
24.02.26 21:53 작성 조회수 76
0
if _, ok := map12["kiwi"]; !ok {
fmt.Println("ex7 : kiwi is not exist!")
}
visual studio code 1.86.2
에디션 Windows 10 Pro
버전 22H2
설치 날짜 2023-10-09
OS 빌드 19045.4046
경험 Windows Feature Experience Pack 1000.19053.1000.0
이 버전에서 Map 기초 수업의 예제 코드가 바이러스 체크에 걸립니다..!
굉장히 흥미로운 현상인데, 같은 현상을 겪으시는 분이 있으신가요?
왜 그런 것일까요?
최대한 문제의 소스코드만 발라내보려고 했는데, 코드가 조금 덜어지면 디펜더에 안걸리네요... 신기하네요... 메모리 침범이라도 되나...
// 자료형 맵
package main
import "fmt"
func main() {
// 맵 (Map)
// 해시테이블, 딕셔너리(파이썬)
// Key-Value로 자료 저장
// 레퍼런스 타입 (참조값 전달)
// 비교 연산자 사용 불가능 (참조 타입이므로)
// 참조 타입으로는 Key에 사용 불가. Value로는 모든 타입 가능
// make 함수 및 축약 (리터럴) 로 초기화 가능
// 순서 없음
// 예제 1
var map1 map[string]int = make(map[string]int) // 정석
var map2 = make(map[string]int) // 자료형 생략
map3 := make(map[string]int) // 리터럴형
fmt.Println("ex1 : ", map1)
fmt.Println("ex1 : ", map2)
fmt.Println("ex1 : ", map3)
fmt.Println()
// 예제 2
map4 := map[string]int{} // Json 형태
map4["apple"] = 25
map4["banana"] = 40
map4["orange"] = 33
map5 := map[string]int{
"apple": 15,
"banana": 40,
"orange": 23,
}
map6 := make(map[string]int, 10)
map6["apple"] = 25
map6["banana"] = 40
map6["orange"] = 33
fmt.Println("ex2 : ", map4)
fmt.Println("ex2 : ", map5)
fmt.Println("ex2 : ", map6)
fmt.Println("ex2 : ", map6["orange"])
fmt.Println("ex2 : ", map6["apple"])
// 예제 3 맵 조회 및 순회 (Iterator)
map11 := map[string]string{
"daum": "http://daum.net",
"naver": "http://naver.com",
"google": "http://google.com",
}
fmt.Println("ex3 : ", map11["google"])
fmt.Println("ex3 : ", map11["daum"])
fmt.Println()
// 예제 4 순서 없으므로 랜덤
for k, v := range map11 {
fmt.Println("ex4 : ", k, v)
}
for k, v := range map11 { // 실행 중에도 순서 보장 X
fmt.Println("ex4 : ", k, v)
}
for _, v := range map11 { // 스킵 가능
fmt.Println("ex4 : ", v)
}
fmt.Println()
// 예제 5 맵 값 변경 및 삭제
fmt.Println("ex5 : ", map11)
map11["home"] = "localhost" // 없을 때 추가
fmt.Println("ex5 : ", map11)
map11["home"] = "http://test.com" // 있을 때 수정
fmt.Println("ex5 : ", map11)
delete(map11, "home") // 삭제
fmt.Println("ex5 : ", map11)
// 예제 6 맵 조회할 경우의 주의 및 팁
map12 := map[string]int{
"apple": 15,
"banana": 115,
"orange": 1115,
"lemon": 0,
}
value1 := map12["lemon"]
value2 := map12["kiwi"] // 존재 X. 변수형 기본값 int 0, string "", float 0.0
value3, ok1 := map12["kiwi"] // 키값 존재를 확인하기 위해 true, false
value4, ok2 := map12["lemon"] // 두번째 리턴값으로 키값 존재 확인
fmt.Println("ex6 : ", value1)
fmt.Println("ex6 : ", value2)
fmt.Println("ex6 : ", value3, ok1)
fmt.Println("ex6 : ", value4, ok2)
// 예제 7
if value, ok := map12["kiwi"]; ok {
fmt.Println("ex7 : ", value)
} else {
fmt.Println("ex7 : kiwi is not exist!")
}
if value, ok := map12["banana"]; ok {
fmt.Println("ex7 : ", value)
} else {
fmt.Println("ex7 : banana is not exist!")
}
if _, ok := map12["kiwi"]; !ok { // _ 사용 가능, 키값 없을 때 예외 처리할 때 많이 사용
fmt.Println("ex7 : kiwi is not exist!")
} // ??? 윈도우 디펜더에서 바이러스 있어보인다고 막네요 ???
}
답변을 작성해보세요.
0
좋은사람
지식공유자2024.02.27
안녕하세요.
바이러스는 윈도우의 디펜더나 백신 강화 상태에서 따라서 스크립트를 악성웨어로 인식할 수가 있습니다.
해당 파일은 스킵 하시고 실행하시면 문제 없이 동작 가능합니다.
감사합니다.
답변 1